diff --git a/.config/doom-emacs b/.config/doom-emacs new file mode 160000 index 0000000..c44aacb --- /dev/null +++ b/.config/doom-emacs @@ -0,0 +1 @@ +Subproject commit c44aacb319d385ed21e007ef1b3c77ac381393c1 diff --git a/.config/doom-emacs-config b/.config/doom-emacs-config new file mode 160000 index 0000000..1ff3fd0 --- /dev/null +++ b/.config/doom-emacs-config @@ -0,0 +1 @@ +Subproject commit 1ff3fd0aa7fbc4dd3d066728377d7be40ef3a4ac diff --git a/.config/dwm-flexipatch b/.config/dwm-flexipatch index ef89428..b302971 160000 --- a/.config/dwm-flexipatch +++ b/.config/dwm-flexipatch @@ -1 +1 @@ -Subproject commit ef89428484afba18b8af9ceb32740dbffef5a545 +Subproject commit b3029712de1505da09eab109c3291253048924bc diff --git a/.config/emacs b/.config/emacs new file mode 160000 index 0000000..ef82118 --- /dev/null +++ b/.config/emacs @@ -0,0 +1 @@ +Subproject commit ef82118824fac2b2363d3171d26acbabe1738326 diff --git a/.config/personal-emacs b/.config/personal-emacs new file mode 160000 index 0000000..7576c90 --- /dev/null +++ b/.config/personal-emacs @@ -0,0 +1 @@ +Subproject commit 7576c9079b5de2075adf1a4d55099890371db190 diff --git a/.emacs-profile b/.emacs-profile new file mode 100644 index 0000000..5133bda --- /dev/null +++ b/.emacs-profile @@ -0,0 +1 @@ +doom diff --git a/.emacs-profiles.el b/.emacs-profiles.el new file mode 100644 index 0000000..97727a3 --- /dev/null +++ b/.emacs-profiles.el @@ -0,0 +1,5 @@ +( + ("personal" . ((user-emacs-directory . "~/.config/personal-emacs"))) + ("doom" . ((user-emacs-directory . "~/.config/doom-emacs") + (env . (("DOOMDIR" . "~/.config/doom-emacs-config"))))) +) diff --git a/.gitmodules b/.gitmodules index 8422758..4200c63 100644 --- a/.gitmodules +++ b/.gitmodules @@ -70,3 +70,19 @@ path = .themes/fallout-grub-theme url = git@github.com:shvchk/fallout-grub-theme.git branch = master +[submodule ".config/emacs"] + path = .config/emacs + url = git@github.com:plexus/chemacs2.git + branch = master +[submodule ".config/personal-emacs"] + path = .config/personal-emacs + url = git@github.com:balajsra/emacs.git + branch = main +[submodule ".config/doom-emacs"] + path = .config/doom-emacs + url = git@github.com:hlissner/doom-emacs.git + branch = develop +[submodule ".config/doom-emacs-config"] + path = .config/doom-emacs-config + url = git@github.com:balajsra/doom-emacs-config.git + branch = master diff --git a/.scripts/startup.sh b/.scripts/startup.sh index 18a0554..b443c55 100755 --- a/.scripts/startup.sh +++ b/.scripts/startup.sh @@ -48,7 +48,6 @@ declare -a kill_delay_array=(\ "killall nyrna" \ # Nyrna ) - help_menu() { echo "Main script to launch and kill startup processes. Use only one argument at a time." # echo " - Play / Pause: playerctl.sh --play-pause" diff --git a/.xmonad b/.xmonad index 0dbd477..9327785 160000 --- a/.xmonad +++ b/.xmonad @@ -1 +1 @@ -Subproject commit 0dbd47799ca8995c0c074f4d66fa1580719c1bda +Subproject commit 9327785e0142ce4bad013ce458fac8f797df0466 diff --git a/README.org b/README.org index 35072d1..631a1eb 100644 --- a/README.org +++ b/README.org @@ -10,65 +10,65 @@ See [[*Acknowledgements]] for tutorial source. Prior to the installation, create alias for config #+begin_src shell - alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" +alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" #+end_src Add =.cfg= to ~.gitignore~ #+begin_src shell - echo ".cfg" >> .gitignore +echo ".cfg" >> .gitignore #+end_src Clone dotfiles into a bare repository #+begin_src shell - git clone --bare $HOME/.cfg +git clone --bare $HOME/.cfg #+end_src Define the alias in the current shell scope #+begin_src shell - alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" +alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" #+end_src Checkout content from bare repository to ~$HOME~ #+begin_src shell - config git checkout +config git checkout #+end_src Step above might fail with a message like: #+begin_example - error: The following untracked working tree files would be overwritten by checkout: - .bashrc - .gitignore - Please move or remove them before you can switch branches. - Aborting +error: The following untracked working tree files would be overwritten by checkout: + .bashrc + .gitignore +Please move or remove them before you can switch branches. +Aborting #+end_example Delete the untracked files so they can be overwritten with the version from dotfiles #+begin_src shell - rm ~/.bashrc ~/.gitignore +rm ~/.bashrc ~/.gitignore #+end_src Re-run checkout #+begin_src shell - config git checkout +config git checkout #+end_src Set the flag =showUntrackedFiles= to =no= on this specific (local) repo #+begin_src shell - config git config --local status.showUntrackedFiles no +config git config --local status.showUntrackedFiles no #+end_src Pull and update submodules #+begin_src shell - config git submodule update --init --recursive --remote +config git submodule update --init --recursive --remote #+end_src * Git @@ -76,85 +76,85 @@ Pull and update submodules ** Config #+begin_src gitconfig :tangle .gitconfig - # Sravan Balaji's Git Configuration - # Based on: https://gist.github.com/tdd/470582 - [user] - email = balajsra@umich.edu - name = Sravan Balaji - [color] - # Enable colors in color-supporting terminals - ui = auto - [pull] - rebase = true - [alias] - # List available aliases - aliases = !git config --get-regexp alias | sed -re 's/alias\\.(\\S*)\\s(.*)$/\\1 = \\2/g' - # Command shortcuts - ci = commit - co = checkout - st = status - # Display tree-like log, because default log is a pain… - lg = log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset' - # Useful when you have to update your last commit - # with staged files without editing the commit message. - oops = commit --amend --no-edit - # Ensure that force-pushing won't lose someone else's work (only mine). - push-with-lease = push --force-with-lease - # Rebase won’t trigger hooks on each "replayed" commit. - # This is an ugly hack that will replay each commit during rebase with the - # standard `commit` command which will trigger hooks. - rebase-with-hooks = rebase -x 'git reset --soft HEAD~1 && git commit -C HEAD@{1}' - # List local commits that were not pushed to remote repository - review-local = "!git lg @{push}.." - # Edit last commit message - reword = commit --amend - # Undo last commit but keep changed files in stage - uncommit = reset --soft HEAD~1 - # Remove file(s) from Git but not from disk - untrack = rm --cache -- - [core] - # Emacs - editor = "emacs" - # Don't consider trailing space change as a cause for merge conflicts - whitespace = -trailing-space - [diff] - # Use better, descriptive initials (c, i, w) instead of a/b. - mnemonicPrefix = true - # Show renames/moves as such - renames = true - # When using --word-diff, assume --word-diff-regex=. - wordRegex = . - # Display submodule-related information (commit listings) - submodule = log - [fetch] - # Auto-fetch submodule changes (sadly, won't auto-update) - recurseSubmodules = on-demand - [grep] - break = true - heading = true - lineNumber = true - # Consider most regexes to be ERE - extendedRegexp = true - [log] - # Use abbrev SHAs whenever possible/relevant instead of full 40 chars - abbrevCommit = true - # Automatically --follow when given a single path - follow = true - # Disable decorate for reflog - # (because there is no dedicated `reflog` section available) - decorate = false - [status] - # Display submodule rev change summaries in status - submoduleSummary = true - # Recursively traverse untracked directories to display all contents - showUntrackedFiles = all +# Sravan Balaji's Git Configuration +# Based on: https://gist.github.com/tdd/470582 +[user] + email = balajsra@umich.edu + name = Sravan Balaji +[color] + # Enable colors in color-supporting terminals + ui = auto +[pull] + rebase = true +[alias] + # List available aliases + aliases = !git config --get-regexp alias | sed -re 's/alias\\.(\\S*)\\s(.*)$/\\1 = \\2/g' + # Command shortcuts + ci = commit + co = checkout + st = status + # Display tree-like log, because default log is a pain… + lg = log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset' + # Useful when you have to update your last commit + # with staged files without editing the commit message. + oops = commit --amend --no-edit + # Ensure that force-pushing won't lose someone else's work (only mine). + push-with-lease = push --force-with-lease + # Rebase won’t trigger hooks on each "replayed" commit. + # This is an ugly hack that will replay each commit during rebase with the + # standard `commit` command which will trigger hooks. + rebase-with-hooks = rebase -x 'git reset --soft HEAD~1 && git commit -C HEAD@{1}' + # List local commits that were not pushed to remote repository + review-local = "!git lg @{push}.." + # Edit last commit message + reword = commit --amend + # Undo last commit but keep changed files in stage + uncommit = reset --soft HEAD~1 + # Remove file(s) from Git but not from disk + untrack = rm --cache -- +[core] + # Emacs + editor = "emacs" + # Don't consider trailing space change as a cause for merge conflicts + whitespace = -trailing-space +[diff] + # Use better, descriptive initials (c, i, w) instead of a/b. + mnemonicPrefix = true + # Show renames/moves as such + renames = true + # When using --word-diff, assume --word-diff-regex=. + wordRegex = . + # Display submodule-related information (commit listings) + submodule = log +[fetch] + # Auto-fetch submodule changes (sadly, won't auto-update) + recurseSubmodules = on-demand +[grep] + break = true + heading = true + lineNumber = true + # Consider most regexes to be ERE + extendedRegexp = true +[log] + # Use abbrev SHAs whenever possible/relevant instead of full 40 chars + abbrevCommit = true + # Automatically --follow when given a single path + follow = true + # Disable decorate for reflog + # (because there is no dedicated `reflog` section available) + decorate = false +[status] + # Display submodule rev change summaries in status + submoduleSummary = true + # Recursively traverse untracked directories to display all contents + showUntrackedFiles = all #+end_src ** Dotfiles Ignore #+begin_src gitignore :tangle .gitignore - .cfg - ,*~ +.cfg +,*~ #+end_src * Notifications @@ -163,605 +163,605 @@ Pull and update submodules *** Global #+begin_src conf :tangle .config/dunst/dunstrc - [global] - ### Display ### +[global] + ### Display ### - # Which monitor should the notifications be displayed on. - monitor = 0 + # Which monitor should the notifications be displayed on. + monitor = 0 - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. - follow = keyboard + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = keyboard - # The geometry of the window: - # [{width}]x{height}[+/-{x}+/-{y}] - # The geometry of the message window. - # The height is measured in number of notifications everything else - # in pixels. If the width is omitted but the height is given - # ("-geometry x2"), the message window expands over the whole screen - # (dmenu-like). If width is 0, the window expands to the longest - # message displayed. A positive x is measured from the left, a - # negative from the right side of the screen. Y is measured from - # the top and down respectively. - # The width can be negative. In this case the actual width is the - # screen width minus the width defined in within the geometry option. - geometry = "0x0-10+40" + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + geometry = "0x0-10+40" - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = yes + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = no + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing window manager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = 15 + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 15 - # The height of the entire notification. If the height is smaller - # than the font height and padding combined, it will be raised - # to the font height and padding. - notification_height = 0 + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 0 - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 1 + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 1 - # Padding between text and separator. - padding = 8 + # Padding between text and separator. + padding = 8 - # Horizontal padding. - horizontal_padding = 10 + # Horizontal padding. + horizontal_padding = 10 - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 2 + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 2 - # Defines color of the frame around the notification window. - frame_color = "#aaaaaa" + # Defines color of the frame around the notification window. + frame_color = "#aaaaaa" - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = auto + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = auto - # Sort messages by urgency. - sort = yes + # Sort messages by urgency. + sort = yes - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary - idle_threshold = 120 + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + idle_threshold = 120 - ### Text ### + ### Text ### - font = Monospace 10 + font = Monospace 10 - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. - line_height = 0 + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. - markup = full + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = "%s | %a %p\n%b" + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s | %a %p\n%b" - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = center + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = center - # Vertical alignment of message text and icon. - # Possible values are "top", "center" and "bottom". - vertical_alignment = center + # Vertical alignment of message text and icon. + # Possible values are "top", "center" and "bottom". + vertical_alignment = center - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60 + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = yes + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". - ellipsize = middle + # When word_wrap is set to no, specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle - # Ignore newlines '\n' in notifications. - ignore_newline = no + # Ignore newlines '\n' in notifications. + ignore_newline = no - # Stack together notifications with the same content - stack_duplicates = true + # Stack together notifications with the same content + stack_duplicates = true - # Hide the count of stacked notifications with the same content - hide_duplicate_count = false + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false - # Display indicators for URLs (U) and actions (A). - show_indicators = yes + # Display indicators for URLs (U) and actions (A). + show_indicators = yes - ### Icons ### + ### Icons ### - # Align icons left/right/off - icon_position = left + # Align icons left/right/off + icon_position = left - # Scale small icons up to this size, set to 0 to disable. Helpful - # for e.g. small files or high-dpi screens. In case of conflict, - # max_icon_size takes precedence over this. - min_icon_size = 0 + # Scale small icons up to this size, set to 0 to disable. Helpful + # for e.g. small files or high-dpi screens. In case of conflict, + # max_icon_size takes precedence over this. + min_icon_size = 0 - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 96 + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 96 - # Paths to default icons. - icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ + # Paths to default icons. + icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ - ### History ### + ### History ### - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = yes + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes - # Maximum amount of notifications kept in history - history_length = 20 + # Maximum amount of notifications kept in history + history_length = 20 - ### Misc/Advanced ### + ### Misc/Advanced ### - # dmenu path. - dmenu = /usr/bin/rofi -dmenu -i -p dunst: + # dmenu path. + dmenu = /usr/bin/rofi -dmenu -i -p dunst: - # Browser for opening urls in context menu. - browser = /usr/bin/vivaldi-stable + # Browser for opening urls in context menu. + browser = /usr/bin/vivaldi-stable - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true - # Define the title of the windows spawned by dunst - title = Dunst + # Define the title of the windows spawned by dunst + title = Dunst - # Define the class of the windows spawned by dunst - class = Dunst + # Define the class of the windows spawned by dunst + class = Dunst - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = true + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = true - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff - verbosity = mesg + # Manage dunst's desire for talking + # Can be one of the following values: + # crit: Critical features. Dunst aborts + # warn: Only non-fatal warnings + # mesg: Important Messages + # info: all unimportant stuff + # debug: all less than unimportant stuff + verbosity = mesg - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - corner_radius = 10 + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 10 - # Ignore the dbus closeNotification message. - # Useful to enforce the timeout set by dunst configuration. Without this - # parameter, an application may close the notification sent before the - # user defined timeout. - ignore_dbusclose = false + # Ignore the dbus closeNotification message. + # Useful to enforce the timeout set by dunst configuration. Without this + # parameter, an application may close the notification sent before the + # user defined timeout. + ignore_dbusclose = false - ### Legacy + ### Legacy - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. - force_xinerama = false + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false - ### mouse + ### mouse - # Defines list of actions for each mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - # These values can be strung together for each mouse event, and - # will be executed in sequence. - mouse_left_click = close_current - mouse_middle_click = close_all - mouse_right_click = do_action, close_current + # Defines list of actions for each mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: If the notification has exactly one action, or one is marked as default, + # invoke it. If there are multiple and no default, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + # These values can be strung together for each mouse event, and + # will be executed in sequence. + mouse_left_click = close_current + mouse_middle_click = close_all + mouse_right_click = do_action, close_current #+end_src *** Experimental #+begin_src conf :tangle .config/dunst/dunstrc - # Experimental features that may or may not work correctly. Do not expect them - # to have a consistent behaviour across releases. - [experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. - per_monitor_dpi = false +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false #+end_src *** Shortcuts #+begin_src conf :tangle .config/dunst/dunstrc - [shortcuts] +[shortcuts] - # Shortcuts are specified as [modifier+][modifier+]...key - # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", - # "mod3" and "mod4" (windows-key). - # Xev might be helpful to find names for keys. + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. - # Close notification. - # close = ctrl+space + # Close notification. + # close = ctrl+space - # Close all notifications. - # close_all = ctrl+shift+space + # Close all notifications. + # close_all = ctrl+shift+space - # Redisplay last message(s). - # On the US keyboard layout "grave" is normally above TAB and left - # of "1". Make sure this key actually exists on your keyboard layout, - # e.g. check output of 'xmodmap -pke' - # history = ctrl+grave + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + # history = ctrl+grave - # Context menu. - # context = ctrl+shift+period + # Context menu. + # context = ctrl+shift+period #+end_src *** Urgency Low #+begin_src conf :tangle .config/dunst/dunstrc - [urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - # background = "#222222" - # foreground = "#888888" - frame_color = "#bd93f9" - background = "#282a36" - foreground = "#f8f8f2" - timeout = 10 - # Icon for notifications with low urgency, uncomment to enable - #icon = /path/to/icon +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + # background = "#222222" + # foreground = "#888888" + frame_color = "#bd93f9" + background = "#282a36" + foreground = "#f8f8f2" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon #+end_src *** Urgency Normal #+begin_src conf :tangle .config/dunst/dunstrc - [urgency_normal] - # background = "#285577" - # foreground = "#ffffff" - frame_color = "#bd93f9" - background = "#282a36" - foreground = "#f8f8f2" - timeout = 10 - # Icon for notifications with normal urgency, uncomment to enable - #icon = /path/to/icon +[urgency_normal] + # background = "#285577" + # foreground = "#ffffff" + frame_color = "#bd93f9" + background = "#282a36" + foreground = "#f8f8f2" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #icon = /path/to/icon #+end_src *** Urgency Critical #+begin_src conf :tangle .config/dunst/dunstrc - [urgency_critical] - # background = "#900000" - # foreground = "#ffffff" - frame_color = "#282a36" - background = "#ff5555" - foreground = "#f8f8f2" - timeout = 0 - # Icon for notifications with critical urgency, uncomment to enable - #icon = /path/to/icon +[urgency_critical] + # background = "#900000" + # foreground = "#ffffff" + frame_color = "#282a36" + background = "#ff5555" + foreground = "#f8f8f2" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #icon = /path/to/icon #+end_src *** Miscellaneous #+begin_src conf :tangle .config/dunst/dunstrc - # Every section that isn't one of the above is interpreted as a rules to - # override settings for certain messages. - # - # Messages can be matched by - # appname (discouraged, see desktop_entry) - # body - # category - # desktop_entry - # icon - # match_transient - # msg_urgency - # stack_tag - # summary - # - # and you can override the - # background - # foreground - # format - # frame_color - # fullscreen - # new_icon - # set_stack_tag - # set_transient - # timeout - # urgency - # - # Shell-like globbing will get expanded. - # - # Instead of the appname filter, it's recommended to use the desktop_entry filter. - # GLib based applications export their desktop-entry name. In comparison to the appname, - # the desktop-entry won't get localized. - # - # SCRIPTING - # You can specify a script that gets run when the rule matches by - # setting the "script" option. - # The script will be called as follows: - # script appname summary body icon urgency - # where urgency can be "LOW", "NORMAL" or "CRITICAL". - # - # NOTE: if you don't want a notification to be displayed, set the format - # to "". - # NOTE: It might be helpful to run dunst -print in a terminal in order - # to find fitting options for rules. +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# timeout +# urgency +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. - # Disable the transient hint so that idle_threshold cannot be bypassed from the - # client - #[transient_disable] - # match_transient = yes - # set_transient = no - # - # Make the handling of transient notifications more strict by making them not - # be placed in history. - #[transient_history_ignore] - # match_transient = yes - # history_ignore = yes +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes - # fullscreen values - # show: show the notifications, regardless if there is a fullscreen window opened - # delay: displays the new notification, if there is no fullscreen window active - # If the notification is already drawn, it won't get undrawn. - # pushback: same as delay, but when switching into fullscreen, the notification will get - # withdrawn from screen again and will get delayed like a new notification - #[fullscreen_delay_everything] - # fullscreen = delay - #[fullscreen_show_critical] - # msg_urgency = critical - # fullscreen = show +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show - #[espeak] - # summary = "*" - # script = dunst_espeak.sh +#[espeak] +# summary = "*" +# script = dunst_espeak.sh - #[script-test] - # summary = "*script*" - # script = dunst_test.sh +#[script-test] +# summary = "*script*" +# script = dunst_test.sh - #[ignore] - # # This notification will not be displayed - # summary = "foobar" - # format = "" +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" - #[history-ignore] - # # This notification will not be saved in history - # summary = "foobar" - # history_ignore = yes +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes - #[skip-display] - # # This notification will not be displayed, but will be included in the history - # summary = "foobar" - # skip_display = yes +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes - #[signed_on] - # appname = Pidgin - # summary = "*signed on*" - # urgency = low - # - #[signed_off] - # appname = Pidgin - # summary = *signed off* - # urgency = low - # - #[says] - # appname = Pidgin - # summary = *says* - # urgency = critical - # - #[twitter] - # appname = Pidgin - # summary = *twitter.com* - # urgency = normal - # - #[stack-volumes] - # appname = "some_volume_notifiers" - # set_stack_tag = "volume" - # - # vim: ft=cfg +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg #+end_src *** Control Script #+begin_src shell :shebang #!/bin/bash :tangle .scripts/dunst.sh - help_menu() { - echo "Script to interact with dunst. Use only one argument at a time." - echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t" - echo " - Turn On: dunst.sh --on" - echo " - Turn Off: dunst.sh --off" - echo " - Context Menu: dunst.sh --context" - echo " - Close Notification: dunst.sh --close" - echo " - History Pop: dunst.sh --history" - echo " - Toggle Do Not Disturb: dunst.sh --dnd" - echo " - Rofi Menu: dunst.sh --rofi" - echo " - Help: dunst.sh --help OR dunst.sh -h" - } +help_menu() { + echo "Script to interact with dunst. Use only one argument at a time." + echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t" + echo " - Turn On: dunst.sh --on" + echo " - Turn Off: dunst.sh --off" + echo " - Context Menu: dunst.sh --context" + echo " - Close Notification: dunst.sh --close" + echo " - History Pop: dunst.sh --history" + echo " - Toggle Do Not Disturb: dunst.sh --dnd" + echo " - Rofi Menu: dunst.sh --rofi" + echo " - Help: dunst.sh --help OR dunst.sh -h" +} - is_running() { - if pgrep -x dunst >/dev/null; then - echo 1 - else - echo 0 - fi - } +is_running() { + if pgrep -x dunst >/dev/null; then + echo 1 + else + echo 0 + fi +} - rofi_menu() { - declare -a options=( - "⏼ Toggle - toggle" - " Turn On - on" - " Turn Off - off" - " Open Actions - context" - " Close Notification - close" - " View History - history" - " Toggle Do Not Disturb - dnd" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + "⏼ Toggle - toggle" + " Turn On - on" + " Turn Off - off" + " Open Actions - context" + " Close Notification - close" + " View History - history" + " Toggle Do Not Disturb - dnd" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --toggle) - if [ $(is_running) -eq '1' ]; then - main --off - else - main --on - fi - ;; - --on) - # Get values from Xresources - config=~/.config/dunst/dunstrc - geometry_x=$(xgetres dunst.geometry-x) - geometry_y=$(xgetres dunst.geometry-y) - separator_height=$(xgetres dunst.sep-height) - padding=$(xgetres dunst.padding) - horizontal_padding=$(xgetres dunst.horiz-padding) - max_icon_size=$(xgetres dunst.max-icon-size) - frame_width=$(xgetres dunst.frame-width) - lb=$(xgetres dunst.low-background) - lf=$(xgetres dunst.low-foreground) - lfr=$(xgetres dunst.low-frame) - nb=$(xgetres dunst.normal-background) - nf=$(xgetres dunst.normal-foreground) - nfr=$(xgetres dunst.normal-frame) - cb=$(xgetres dunst.critical-background) - cf=$(xgetres dunst.critical-foreground) - cfr=$(xgetres dunst.critical-frame) +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --toggle) + if [ $(is_running) -eq '1' ]; then + main --off + else + main --on + fi + ;; + --on) + # Get values from Xresources + config=~/.config/dunst/dunstrc + geometry_x=$(xgetres dunst.geometry-x) + geometry_y=$(xgetres dunst.geometry-y) + separator_height=$(xgetres dunst.sep-height) + padding=$(xgetres dunst.padding) + horizontal_padding=$(xgetres dunst.horiz-padding) + max_icon_size=$(xgetres dunst.max-icon-size) + frame_width=$(xgetres dunst.frame-width) + lb=$(xgetres dunst.low-background) + lf=$(xgetres dunst.low-foreground) + lfr=$(xgetres dunst.low-frame) + nb=$(xgetres dunst.normal-background) + nf=$(xgetres dunst.normal-foreground) + nfr=$(xgetres dunst.normal-frame) + cb=$(xgetres dunst.critical-background) + cf=$(xgetres dunst.critical-foreground) + cfr=$(xgetres dunst.critical-frame) - if [ $(is_running) -eq '1' ]; then - killall dunst - fi + if [ $(is_running) -eq '1' ]; then + killall dunst + fi - # Start Dunst - /usr/bin/dunst -config $config \ - -geometry "0x0-$geometry_x+$geometry_y" \ - -separator_height "$separator_height" \ - -padding "$padding" \ - -horizontal_padding "$horizontal_padding" \ - -max_icon_size "$max_icon_size" \ - -frame_width "$frame_width" \ - -lb "$lb" \ - -lf "$lf" \ - -lfr "$lfr" \ - -nb "$nb" \ - -nf "$nf" \ - -nfr "$nfr" \ - -cb "$cb" \ - -cf "$cf" \ - -cfr "$cfr" & + # Start Dunst + /usr/bin/dunst -config $config \ + -geometry "0x0-$geometry_x+$geometry_y" \ + -separator_height "$separator_height" \ + -padding "$padding" \ + -horizontal_padding "$horizontal_padding" \ + -max_icon_size "$max_icon_size" \ + -frame_width "$frame_width" \ + -lb "$lb" \ + -lf "$lf" \ + -lfr "$lfr" \ + -nb "$nb" \ + -nf "$nf" \ + -nfr "$nfr" \ + -cb "$cb" \ + -cf "$cf" \ + -cfr "$cfr" & - notify-send "Turning Dunst ON" - ;; - --off) - notify-send "Turning Dunst OFF" + notify-send "Turning Dunst ON" + ;; + --off) + notify-send "Turning Dunst OFF" - if [ $(is_running) -eq '1' ]; then - killall dunst - fi - ;; - --context) - dunstctl context - ;; - --close) - dunstctl close - ;; - --history) - dunstctl history-pop - ;; - --dnd) - dunstctl set-paused toggle - ;; - --rofi) - rofi_menu - ;; - esac - fi - } + if [ $(is_running) -eq '1' ]; then + killall dunst + fi + ;; + --context) + dunstctl context + ;; + --close) + dunstctl close + ;; + --history) + dunstctl history-pop + ;; + --dnd) + dunstctl set-paused toggle + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src ** Deadd Notification Center @@ -771,163 +771,163 @@ Pull and update submodules **** Notification Center #+begin_src conf :tangle .config/deadd/deadd.conf - [notification-center] +[notification-center] #+end_src Hide the notification center when the mouse leaves the window #+begin_src conf :tangle .config/deadd/deadd.conf - hideOnMouseLeave = false +hideOnMouseLeave = false #+end_src Margin at the top of the notification center in pixels. This can be used to avoid overlap between the notification center and bars such as polybar or i3blocks. #+begin_src conf :tangle .config/deadd/deadd.conf - marginTop = 25 +marginTop = 25 #+end_src Margin at the bottom of the notification center in pixels. #+begin_src conf :tangle .config/deadd/deadd.conf - marginBottom = 0 +marginBottom = 0 #+end_src Margin to the right of the notification center in pixels. #+begin_src conf :tangle .config/deadd/deadd.conf - marginRight = 0 +marginRight = 0 #+end_src Width of the notification center in pixels. #+begin_src conf :tangle .config/deadd/deadd.conf - width = 700 +width = 700 #+end_src Monitor on which the notification center will be printed. #+begin_src conf :tangle .config/deadd/deadd.conf - monitor = 0 +monitor = 0 #+end_src If true, the notification center will open on the screen, on which the mouse is #+begin_src conf :tangle .config/deadd/deadd.conf - followMouse = true +followMouse = true #+end_src (Optional) Command to run at startup. This can be used to setup button states. #+begin_src conf :tangle .config/deadd/deadd.conf - # startupCommand = "deadd-notification-center-startup" +# startupCommand = "deadd-notification-center-startup" #+end_src If newFirst is set to true, newest notifications appear on the top of the notification center. Else, notifications stack, from top to bottom. #+begin_src conf :tangle .config/deadd/deadd.conf - newFirst = true +newFirst = true #+end_src If useActionIcons is set to true, Action Buttons can show Icon #+begin_src conf :tangle .config/deadd/deadd.conf - useActionIcons = true +useActionIcons = true #+end_src If true, the transient field in notifications will be ignored and the notification will be persisted in the notification center anyways #+begin_src conf :tangle .config/deadd/deadd.conf - ignoreTransient = false +ignoreTransient = false #+end_src If true, markup (, , , ) will be displayed properly #+begin_src conf :tangle .config/deadd/deadd.conf - useMarkup = true +useMarkup = true #+end_src If true, html entities (& for &, % for %, etc) will be parsed properly. This is useful for chromium-based apps, which tend to send these in notifications. #+begin_src conf :tangle .config/deadd/deadd.conf - parseHtmlEntities = true +parseHtmlEntities = true #+end_src If set to true, the parameter noClosedMsg can be set on notifications. If noClosedMsg is set to true on a notification, DBUS NotificationClosed messages will not be send for this notification. #+begin_src conf :tangle .config/deadd/deadd.conf - configSendNotiClosedDbusMessage = false +configSendNotiClosedDbusMessage = false #+end_src If set to true: If no icon is passed by the app_icon parameter and no application "desktop-entry"-hint is present, the notification center will try to guess the icon from the application name (if present). Default is true. #+begin_src conf :tangle .config/deadd/deadd.conf - guessIconFromAppname = true +guessIconFromAppname = true #+end_src See section [[https://github.com/phuhl/linux_notification_center#notification-based-scripting][Notification based scripting]] for an explanation #+begin_src conf :tangle .config/deadd/deadd.conf - #match = "title=Abc;body=abc":"app=notify-send" - #modify = "transient=false" - #run = "":"killall notify-send" +#match = "title=Abc;body=abc":"app=notify-send" +#modify = "transient=false" +#run = "":"killall notify-send" #+end_src **** Notification Popup #+begin_src conf :tangle .config/deadd/deadd.conf - [notification-center-notification-popup] +[notification-center-notification-popup] #+end_src Default timeout used for notifications in milli-seconds. This can be overwritten with the "-t" option (or "--expire-time") of the notify-send command. #+begin_src conf :tangle .config/deadd/deadd.conf - notiDefaultTimeout = 10000 +notiDefaultTimeout = 10000 #+end_src Margin above notifications (in pixels). This can be used to avoid overlap between notifications and a bar such as polybar or i3blocks. #+begin_src conf :tangle .config/deadd/deadd.conf - distanceTop = 25 +distanceTop = 25 #+end_src Margin on the right of the notification (in pixels). #+begin_src conf :tangle .config/deadd/deadd.conf - distanceRight = 0 +distanceRight = 0 #+end_src Vertical distance between 2 notifications (in pixels). #+begin_src conf :tangle .config/deadd/deadd.conf - distanceBetween = 10 +distanceBetween = 10 #+end_src Width of the notifications. #+begin_src conf :tangle .config/deadd/deadd.conf - width = 400 +width = 400 #+end_src Monitor on which the notification will be printed. #+begin_src conf :tangle .config/deadd/deadd.conf - monitor = 0 +monitor = 0 #+end_src If true, the notifications will open on the screen, on which the mouse is #+begin_src conf :tangle .config/deadd/deadd.conf - followMouse = true +followMouse = true #+end_src The display size of the application icons in the notification pop-ups and in the notification center #+begin_src conf :tangle .config/deadd/deadd.conf - iconSize = 25 +iconSize = 25 #+end_src The maximal display size of images that are part of notifications for notification pop-ups and in the notification center #+begin_src conf :tangle .config/deadd/deadd.conf - maxImageSize = 100 +maxImageSize = 100 #+end_src The margin around the top, bottom, left, and right of notification images. Applies to popup notifications and in-center notifications. #+begin_src conf :tangle .config/deadd/deadd.conf - imageMarginTop = 10 - imageMarginBottom = 10 - imageMarginLeft = 0 - imageMarginRight = 0 +imageMarginTop = 10 +imageMarginBottom = 10 +imageMarginLeft = 0 +imageMarginRight = 0 #+end_src Truncates notification bodies with '...' at the specified number of lines. If -1 is specified, the body text will not be truncated. Applies only to popup notifications #+begin_src conf :tangle .config/deadd/deadd.conf - shortenBody = 5 +shortenBody = 5 #+end_src The mouse button for closing a popup. Must be either "mouse1", "mouse2", "mouse3", "mouse4", or "mouse5" #+begin_src conf :tangle .config/deadd/deadd.conf - dismissButton = mouse1 +dismissButton = mouse1 #+end_src The mouse button for opening a popup with the default action. Must be either "mouse1", "mouse2", "mouse3", "mouse4", or "mouse5" #+begin_src conf :tangle .config/deadd/deadd.conf - defaultActionButton = mouse3 +defaultActionButton = mouse3 #+end_src **** Buttons @@ -941,32 +941,32 @@ Note: If you want your buttons in the notification center to be + ([buttons]::buttonsPerRow + 1) * [buttons]::buttonMargin #+begin_src conf :tangle .config/deadd/deadd.conf - [buttons] +[buttons] #+end_src Numbers of buttons that can be drawn on a row of the notification center. #+begin_src conf :tangle .config/deadd/deadd.conf - buttonsPerRow = 5 +buttonsPerRow = 5 #+end_src Height of buttons in the notification center (in pixels). #+begin_src conf :tangle .config/deadd/deadd.conf - buttonHeight = 60 +buttonHeight = 60 #+end_src Horizontal and vertical margin between each button in the notification center (in pixels). #+begin_src conf :tangle .config/deadd/deadd.conf - buttonMargin = 2 +buttonMargin = 2 #+end_src Labels written on the buttons in the notification center. Labels should be written between quotes and separated by a colon. For example: #+begin_src conf :tangle .config/deadd/deadd.conf - # labels = "VPN":"Bluetooth":"Wifi":"Screensaver" +# labels = "VPN":"Bluetooth":"Wifi":"Screensaver" #+end_src Each label is represented as a clickable button in the notification center. The commands variable below define the commands that should be launched when the user clicks on the associated button. There should be the same number of entries in `commands` and in `labels` #+begin_src conf :tangle .config/deadd/deadd.conf - # commands = "sudo vpnToggle":"bluetoothToggle":"wifiToggle":"screensaverToggle" +# commands = "sudo vpnToggle":"bluetoothToggle":"wifiToggle":"screensaverToggle" #+end_src *** Styling @@ -974,264 +974,264 @@ Each label is represented as a clickable button in the notification center. The **** Notification Center #+begin_src conf :tangle .config/deadd/deadd.css - .blurredBG, #main_window, .blurredBG.low, .blurredBG.normal { - background: rgba(40, 42, 54, 0.8); - border: 2pt #50fa7b solid; - border-radius: 10px; - } +.blurredBG, #main_window, .blurredBG.low, .blurredBG.normal { + background: rgba(40, 42, 54, 0.8); + border: 2pt #50fa7b solid; + border-radius: 10px; +} - .noti-center.time { - font-size: 32px; - } +.noti-center.time { + font-size: 32px; +} #+end_src **** Notifications #+begin_src conf :tangle .config/deadd/deadd.css - .title { - font-weight: bold; - font-size: 16px; - } +.title { + font-weight: bold; + font-size: 16px; +} - .appname { - font-size: 12px; - } +.appname { + font-size: 12px; +} - .time { - font-size: 12px; - } +.time { + font-size: 12px; +} - .blurredBG.notification { - background: rgba(40, 42, 54, 0.8); - border: 2pt #50fa7b solid; - border-radius: 10px; - } +.blurredBG.notification { + background: rgba(40, 42, 54, 0.8); + border: 2pt #50fa7b solid; + border-radius: 10px; +} - .blurredBG.notification.critical { - background: rgba(255, 85, 85, 0.8); - border: 2pt #50fa7b solid; - border-radius: 10px; - } +.blurredBG.notification.critical { + background: rgba(255, 85, 85, 0.8); + border: 2pt #50fa7b solid; + border-radius: 10px; +} - .notificationInCenter.critical { - background: rgba(255, 85, 85, 0.8); - } +.notificationInCenter.critical { + background: rgba(255, 85, 85, 0.8); +} #+end_src **** Labels #+begin_src conf :tangle .config/deadd/deadd.css - label { - color: #f8f8f2; - } +label { + color: #f8f8f2; +} - label.notification { - color: #f8f8f2; - } +label.notification { + color: #f8f8f2; +} - label.critical { - color: #f8f8f2; - } - .notificationInCenter label.critical { - color: #f8f8f2; - } +label.critical { + color: #f8f8f2; +} +.notificationInCenter label.critical { + color: #f8f8f2; +} #+end_src **** Buttons #+begin_src conf :tangle .config/deadd/deadd.css - button { - background: transparent; - color: #f8f8f2; - border-radius: 10px; - border-width: 2px; - background-position: 0px 0px; - text-shadow: none; - } +button { + background: transparent; + color: #f8f8f2; + border-radius: 10px; + border-width: 2px; + background-position: 0px 0px; + text-shadow: none; +} - button:hover { - border-radius: 10px; - background: rgba(68, 71, 90, 0.8); - border-width: 2px; - border-top: transparent; - border-color: #50fa7b; - color: #282a36; - } +button:hover { + border-radius: 10px; + background: rgba(68, 71, 90, 0.8); + border-width: 2px; + border-top: transparent; + border-color: #50fa7b; + color: #282a36; +} #+end_src **** Custom Buttons #+begin_src conf :tangle .config/deadd/deadd.css - .userbutton { - background: transparent; - border-radius: 10px; - border-width: 2px; - background-position: 0px 0px; - text-shadow: none; - } +.userbutton { + background: transparent; + border-radius: 10px; + border-width: 2px; + background-position: 0px 0px; + text-shadow: none; +} - .userbutton:hover { - border-radius: 10px; - background: rgba(68, 71, 90, 0.8); - border-width: 2px; - border-top: transparent; - border-color: #50fa7b; - } +.userbutton:hover { + border-radius: 10px; + background: rgba(68, 71, 90, 0.8); + border-width: 2px; + border-top: transparent; + border-color: #50fa7b; +} - .userbuttonlabel { - color: #f8f8f2; - font-size: 12px; - } +.userbuttonlabel { + color: #f8f8f2; + font-size: 12px; +} - .userbuttonlabel:hover { - color: #f8f8f2; - } +.userbuttonlabel:hover { + color: #f8f8f2; +} - button.buttonState1 { - background: rgba(20,0,0,0.5); - } +button.buttonState1 { + background: rgba(20,0,0,0.5); +} - .userbuttonlabel.buttonState1 { - color: #fff; - } +.userbuttonlabel.buttonState1 { + color: #fff; +} - button.buttonState1:hover { - background: rgba(20,0,0, 0.4); - } +button.buttonState1:hover { + background: rgba(20,0,0, 0.4); +} - .userbuttonlabel.buttonState1:hover { - color: #111; - } +.userbuttonlabel.buttonState1:hover { + color: #111; +} - button.buttonState2 { - background: rgba(255,255,255,0.3); - } +button.buttonState2 { + background: rgba(255,255,255,0.3); +} - .userbuttonlabel.buttonState2 { - color: #111; - } +.userbuttonlabel.buttonState2 { + color: #111; +} - button.buttonState2:hover { - background: rgba(20,0,0, 0.3); - } +button.buttonState2:hover { + background: rgba(20,0,0, 0.3); +} - .userbuttonlabel.buttonState2:hover { - color: #000; - } +.userbuttonlabel.buttonState2:hover { + color: #000; +} #+end_src **** Images #+begin_src conf :tangle .config/deadd/deadd.css - image.deadd-noti-center.notification.image { - margin-left: 10px; - } +image.deadd-noti-center.notification.image { + margin-left: 10px; +} #+end_src *** Control Script #+begin_src shell :shebang #!/bin/bash :tangle .scripts/deadd.sh - help_menu() { - echo "Script to interact with deadd. Use only one argument at a time." - echo " - Toggle On/Off: deadd.sh OR deadd.sh --toggle OR deadd.sh -t" - echo " - Turn On: deadd.sh --on" - echo " - Turn Off: deadd.sh --off" - echo " - Toggle Notification Center: deadd.sh --toggle-center" - echo " - Pause Popup Notifications: deadd.sh --pause" - echo " - Unpause Popup Notifications: deadd.sh --unpause" - echo " - Rofi Menu: deadd.sh --rofi" - echo " - Help: deadd.sh --help OR deadd.sh -h" - } +help_menu() { + echo "Script to interact with deadd. Use only one argument at a time." + echo " - Toggle On/Off: deadd.sh OR deadd.sh --toggle OR deadd.sh -t" + echo " - Turn On: deadd.sh --on" + echo " - Turn Off: deadd.sh --off" + echo " - Toggle Notification Center: deadd.sh --toggle-center" + echo " - Pause Popup Notifications: deadd.sh --pause" + echo " - Unpause Popup Notifications: deadd.sh --unpause" + echo " - Rofi Menu: deadd.sh --rofi" + echo " - Help: deadd.sh --help OR deadd.sh -h" +} - is_running() { - if pgrep -x deadd-notificat >/dev/null; then - echo 1 - else - echo 0 - fi - } +is_running() { + if pgrep -x deadd-notificat >/dev/null; then + echo 1 + else + echo 0 + fi +} - rofi_menu() { - declare -a options=( - "⏼ Toggle - toggle" - " Turn On - on" - " Turn Off - off" - " Toggle Notification Center - toggle-center" - " Pause Popup Notifications - pause" - " Unpause Popup Notifications - unpause" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + "⏼ Toggle - toggle" + " Turn On - on" + " Turn Off - off" + " Toggle Notification Center - toggle-center" + " Pause Popup Notifications - pause" + " Unpause Popup Notifications - unpause" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --toggle) - if [ $(is_running) -eq '1' ]; then - main --off - else - main --on - fi - ;; - --on) - if [ $(is_running) -eq '1' ]; then - killall deadd-notificat - fi +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --toggle) + if [ $(is_running) -eq '1' ]; then + main --off + else + main --on + fi + ;; + --on) + if [ $(is_running) -eq '1' ]; then + killall deadd-notificat + fi - /home/sravan/.local/bin/notify-send.py a --hint \ - boolean:deadd-notification-center:true \ - string:type:reloadStyle + /home/sravan/.local/bin/notify-send.py a --hint \ + boolean:deadd-notification-center:true \ + string:type:reloadStyle - notify-send "Turning Deadd ON" - ;; - --off) - notify-send "Turning Deadd OFF" + notify-send "Turning Deadd ON" + ;; + --off) + notify-send "Turning Deadd OFF" - if [ $(is_running) -eq '1' ]; then - killall deadd-notificat - fi - ;; - --toggle-center) - kill -s USR1 $(pidof deadd-notification-center) - ;; - --pause) - notify-send "Pausing Notifications" + if [ $(is_running) -eq '1' ]; then + killall deadd-notificat + fi + ;; + --toggle-center) + kill -s USR1 $(pidof deadd-notification-center) + ;; + --pause) + notify-send "Pausing Notifications" - /home/sravan/.local/bin/notify-send.py a --hint \ - boolean:deadd-notification-center:true \ - string:type:pausePopups > /dev/null 2>&1 - ;; - --unpause) - /home/sravan/.local/bin/notify-send.py a --hint \ - boolean:deadd-notification-center:true \ - string:type:unpausePopups > /dev/null 2>&1 + /home/sravan/.local/bin/notify-send.py a --hint \ + boolean:deadd-notification-center:true \ + string:type:pausePopups > /dev/null 2>&1 + ;; + --unpause) + /home/sravan/.local/bin/notify-send.py a --hint \ + boolean:deadd-notification-center:true \ + string:type:unpausePopups > /dev/null 2>&1 - notify-send "Unpausing Notifications" - ;; - --rofi) - rofi_menu - ;; - esac - fi - } + notify-send "Unpausing Notifications" + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src * Application Launcher @@ -1241,151 +1241,151 @@ Each label is represented as a clickable button in the notification center. The *** Configuration #+begin_src css :tangle .config/rofi/config.rasi - configuration { - modi: "window,drun,combi,run,clipboard:greenclip print,ssh"; - /* width: 50;*/ - /* lines: 15;*/ - /* columns: 1;*/ - font: "NotoSans Nerd Font 12"; - /* bw: 1;*/ - /* location: 0;*/ - /* padding: 5;*/ - /* yoffset: 0;*/ - /* xoffset: 0;*/ - /* fixed-num-lines: true;*/ - show-icons: true; - terminal: "kitty"; - /* ssh-client: "ssh";*/ - /* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ - /* run-command: "{cmd}";*/ - /* run-list-command: "";*/ - /* run-shell-command: "{terminal} -e {cmd}";*/ - /* window-command: "wmctrl -i -R {window}";*/ - /* window-match-fields: "all";*/ - icon-theme: "Papirus-Dark"; - /* drun-match-fields: "name,generic,exec,categories";*/ - /* drun-show-actions: false;*/ - /* drun-display-format: "{name} [({generic})]";*/ - /* disable-history: false;*/ - /* ignored-prefixes: "";*/ - /* sort: false;*/ - /* sorting-method: ;*/ - /* case-sensitive: false;*/ - /* cycle: true;*/ - /* sidebar-mode: false;*/ - /* eh: 1;*/ - /* auto-select: false;*/ - /* parse-hosts: false;*/ - /* parse-known-hosts: true;*/ - combi-modi: "window,drun"; - /* matching: "normal";*/ - /* tokenize: true;*/ - /* m: "-5";*/ - /* line-margin: 2;*/ - /* line-padding: 1;*/ - /* filter: ;*/ - /* separator-style: "dash";*/ - /* hide-scrollbar: false;*/ - /* fullscreen: false;*/ - /* fake-transparency: false;*/ - /* dpi: -1;*/ - /* threads: 0;*/ - /* scrollbar-width: 8;*/ - /* scroll-method: 0;*/ - /* fake-background: "screenshot";*/ - /* window-format: "{w} {c} {t}";*/ - /* click-to-exit: true;*/ - /* show-match: true;*/ - theme: "centertab-dracula"; - /* color-normal: ;*/ - /* color-urgent: ;*/ - /* color-active: ;*/ - /* color-window: ;*/ - /* max-history-size: 25;*/ - /* combi-hide-mode-prefix: false;*/ - /* matching-negate-char: '-' /* unsupported */;*/ - /* cache-dir: ;*/ - /* pid: "/run/user/1000/rofi.pid";*/ - /* display-window: ;*/ - /* display-windowcd: ;*/ - /* display-run: ;*/ - /* display-ssh: ;*/ - /* display-drun: ;*/ - /* display-combi: ;*/ - /* display-keys: ;*/ - /* kb-primary-paste: "Control+V,Shift+Insert";*/ - /* kb-secondary-paste: "Control+v,Insert";*/ - /* kb-clear-line: "Control+w";*/ - /* kb-move-front: "Control+a";*/ - /* kb-move-end: "Control+e";*/ - /* kb-move-word-back: "Alt+b,Control+Left";*/ - /* kb-move-word-forward: "Alt+f,Control+Right";*/ - /* kb-move-char-back: "Left,Control+b";*/ - /* kb-move-char-forward: "Right,Control+f";*/ - /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ - /* kb-remove-word-forward: "Control+Alt+d";*/ - /* kb-remove-char-forward: "Delete,Control+d";*/ - kb-remove-char-back: "BackSpace"; - kb-remove-to-eol: "Control+Shift+e"; - /* kb-remove-to-sol: "Control+u";*/ - kb-accept-entry: "Control+m,Return,KP_Enter"; - /* kb-accept-custom: "Control+Return";*/ - /* kb-accept-alt: "Shift+Return";*/ - /* kb-delete-entry: "Shift+Delete";*/ - kb-mode-next: "Shift+Right,Control+Tab"; - kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; - /* kb-row-left: "Control+Page_Up";*/ - /* kb-row-right: "Control+Page_Down";*/ - kb-row-up: "Up,Control+k,Control+p,ISO_Left_Tab"; - kb-row-down: "Down,Control+j,Control+n"; - /* kb-row-tab: "Tab";*/ - /* kb-page-prev: "Page_Up";*/ - /* kb-page-next: "Page_Down";*/ - /* kb-row-first: "Home,KP_Home";*/ - /* kb-row-last: "End,KP_End";*/ - /* kb-row-select: "Control+space";*/ - /* kb-screenshot: "Alt+S";*/ - /* kb-ellipsize: "Alt+period";*/ - /* kb-toggle-case-sensitivity: "grave,dead_grave";*/ - /* kb-toggle-sort: "Alt+grave";*/ - /* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ - /* kb-custom-1: "Alt+1";*/ - /* kb-custom-2: "Alt+2";*/ - /* kb-custom-3: "Alt+3";*/ - /* kb-custom-4: "Alt+4";*/ - /* kb-custom-5: "Alt+5";*/ - /* kb-custom-6: "Alt+6";*/ - /* kb-custom-7: "Alt+7";*/ - /* kb-custom-8: "Alt+8";*/ - /* kb-custom-9: "Alt+9";*/ - /* kb-custom-10: "Alt+0";*/ - /* kb-custom-11: "Alt+exclam";*/ - /* kb-custom-12: "Alt+at";*/ - /* kb-custom-13: "Alt+numbersign";*/ - /* kb-custom-14: "Alt+dollar";*/ - /* kb-custom-15: "Alt+percent";*/ - /* kb-custom-16: "Alt+dead_circumflex";*/ - /* kb-custom-17: "Alt+ampersand";*/ - /* kb-custom-18: "Alt+asterisk";*/ - /* kb-custom-19: "Alt+parenleft";*/ - /* kb-select-1: "Super+1";*/ - /* kb-select-2: "Super+2";*/ - /* kb-select-3: "Super+3";*/ - /* kb-select-4: "Super+4";*/ - /* kb-select-5: "Super+5";*/ - /* kb-select-6: "Super+6";*/ - /* kb-select-7: "Super+7";*/ - /* kb-select-8: "Super+8";*/ - /* kb-select-9: "Super+9";*/ - /* kb-select-10: "Super+0";*/ - /* ml-row-left: "ScrollLeft";*/ - /* ml-row-right: "ScrollRight";*/ - /* ml-row-up: "ScrollUp";*/ - /* ml-row-down: "ScrollDown";*/ - /* me-select-entry: "MousePrimary";*/ - /* me-accept-entry: "MouseDPrimary";*/ - /* me-accept-custom: "Control+MouseDPrimary";*/ - } +configuration { + modi: "window,drun,combi,run,clipboard:greenclip print,ssh"; +/* width: 50;*/ +/* lines: 15;*/ +/* columns: 1;*/ + font: "NotoSans Nerd Font 12"; +/* bw: 1;*/ +/* location: 0;*/ +/* padding: 5;*/ +/* yoffset: 0;*/ +/* xoffset: 0;*/ +/* fixed-num-lines: true;*/ + show-icons: true; + terminal: "kitty"; +/* ssh-client: "ssh";*/ +/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ +/* run-command: "{cmd}";*/ +/* run-list-command: "";*/ +/* run-shell-command: "{terminal} -e {cmd}";*/ +/* window-command: "wmctrl -i -R {window}";*/ +/* window-match-fields: "all";*/ + icon-theme: "Papirus-Dark"; +/* drun-match-fields: "name,generic,exec,categories";*/ +/* drun-show-actions: false;*/ +/* drun-display-format: "{name} [({generic})]";*/ +/* disable-history: false;*/ +/* ignored-prefixes: "";*/ +/* sort: false;*/ +/* sorting-method: ;*/ +/* case-sensitive: false;*/ +/* cycle: true;*/ +/* sidebar-mode: false;*/ +/* eh: 1;*/ +/* auto-select: false;*/ +/* parse-hosts: false;*/ +/* parse-known-hosts: true;*/ + combi-modi: "window,drun"; +/* matching: "normal";*/ +/* tokenize: true;*/ +/* m: "-5";*/ +/* line-margin: 2;*/ +/* line-padding: 1;*/ +/* filter: ;*/ +/* separator-style: "dash";*/ +/* hide-scrollbar: false;*/ +/* fullscreen: false;*/ +/* fake-transparency: false;*/ +/* dpi: -1;*/ +/* threads: 0;*/ +/* scrollbar-width: 8;*/ +/* scroll-method: 0;*/ +/* fake-background: "screenshot";*/ +/* window-format: "{w} {c} {t}";*/ +/* click-to-exit: true;*/ +/* show-match: true;*/ + theme: "centertab-dracula"; +/* color-normal: ;*/ +/* color-urgent: ;*/ +/* color-active: ;*/ +/* color-window: ;*/ +/* max-history-size: 25;*/ +/* combi-hide-mode-prefix: false;*/ +/* matching-negate-char: '-' /* unsupported */;*/ +/* cache-dir: ;*/ +/* pid: "/run/user/1000/rofi.pid";*/ +/* display-window: ;*/ +/* display-windowcd: ;*/ +/* display-run: ;*/ +/* display-ssh: ;*/ +/* display-drun: ;*/ +/* display-combi: ;*/ +/* display-keys: ;*/ +/* kb-primary-paste: "Control+V,Shift+Insert";*/ +/* kb-secondary-paste: "Control+v,Insert";*/ +/* kb-clear-line: "Control+w";*/ +/* kb-move-front: "Control+a";*/ +/* kb-move-end: "Control+e";*/ +/* kb-move-word-back: "Alt+b,Control+Left";*/ +/* kb-move-word-forward: "Alt+f,Control+Right";*/ +/* kb-move-char-back: "Left,Control+b";*/ +/* kb-move-char-forward: "Right,Control+f";*/ +/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ +/* kb-remove-word-forward: "Control+Alt+d";*/ +/* kb-remove-char-forward: "Delete,Control+d";*/ + kb-remove-char-back: "BackSpace"; + kb-remove-to-eol: "Control+Shift+e"; +/* kb-remove-to-sol: "Control+u";*/ + kb-accept-entry: "Control+m,Return,KP_Enter"; +/* kb-accept-custom: "Control+Return";*/ +/* kb-accept-alt: "Shift+Return";*/ +/* kb-delete-entry: "Shift+Delete";*/ + kb-mode-next: "Shift+Right,Control+Tab"; + kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; +/* kb-row-left: "Control+Page_Up";*/ +/* kb-row-right: "Control+Page_Down";*/ + kb-row-up: "Up,Control+k,Control+p,ISO_Left_Tab"; + kb-row-down: "Down,Control+j,Control+n"; +/* kb-row-tab: "Tab";*/ +/* kb-page-prev: "Page_Up";*/ +/* kb-page-next: "Page_Down";*/ +/* kb-row-first: "Home,KP_Home";*/ +/* kb-row-last: "End,KP_End";*/ +/* kb-row-select: "Control+space";*/ +/* kb-screenshot: "Alt+S";*/ +/* kb-ellipsize: "Alt+period";*/ +/* kb-toggle-case-sensitivity: "grave,dead_grave";*/ +/* kb-toggle-sort: "Alt+grave";*/ +/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ +/* kb-custom-1: "Alt+1";*/ +/* kb-custom-2: "Alt+2";*/ +/* kb-custom-3: "Alt+3";*/ +/* kb-custom-4: "Alt+4";*/ +/* kb-custom-5: "Alt+5";*/ +/* kb-custom-6: "Alt+6";*/ +/* kb-custom-7: "Alt+7";*/ +/* kb-custom-8: "Alt+8";*/ +/* kb-custom-9: "Alt+9";*/ +/* kb-custom-10: "Alt+0";*/ +/* kb-custom-11: "Alt+exclam";*/ +/* kb-custom-12: "Alt+at";*/ +/* kb-custom-13: "Alt+numbersign";*/ +/* kb-custom-14: "Alt+dollar";*/ +/* kb-custom-15: "Alt+percent";*/ +/* kb-custom-16: "Alt+dead_circumflex";*/ +/* kb-custom-17: "Alt+ampersand";*/ +/* kb-custom-18: "Alt+asterisk";*/ +/* kb-custom-19: "Alt+parenleft";*/ +/* kb-select-1: "Super+1";*/ +/* kb-select-2: "Super+2";*/ +/* kb-select-3: "Super+3";*/ +/* kb-select-4: "Super+4";*/ +/* kb-select-5: "Super+5";*/ +/* kb-select-6: "Super+6";*/ +/* kb-select-7: "Super+7";*/ +/* kb-select-8: "Super+8";*/ +/* kb-select-9: "Super+9";*/ +/* kb-select-10: "Super+0";*/ +/* ml-row-left: "ScrollLeft";*/ +/* ml-row-right: "ScrollRight";*/ +/* ml-row-up: "ScrollUp";*/ +/* ml-row-down: "ScrollDown";*/ +/* me-select-entry: "MousePrimary";*/ +/* me-accept-entry: "MouseDPrimary";*/ +/* me-accept-custom: "Control+MouseDPrimary";*/ +} #+end_src *** Themes @@ -1393,730 +1393,730 @@ Each label is represented as a clickable button in the notification center. The **** Centertab Dracula #+begin_src css :tangle .config/rofi/themes/centertab-dracula.rasi - /** - ,* ROFI Color theme: centertab-dracula - ,* User: balajsra - ,* Copyright: deadguy & Sravan Balaji - ,*/ +/** + ,* ROFI Color theme: centertab-dracula + ,* User: balajsra + ,* Copyright: deadguy & Sravan Balaji + ,*/ - configuration { - display-drun: "launch"; - display-run: "execute"; - display-window: "window"; - display-combi: "combi"; - show-icons: true; - sidebar-mode: false; - font: "NotoSans Nerd Font 12"; - } +configuration { + display-drun: "launch"; + display-run: "execute"; + display-window: "window"; + display-combi: "combi"; + show-icons: true; + sidebar-mode: false; + font: "NotoSans Nerd Font 12"; +} - ,* { - background-color: #282a36ff; - text-color: #f8f8f2ff; - selbg: #8be9fdff; - actbg: #44475aff; - urgbg: #ff5555ff; - winbg: #8be9fdff; +,* { + background-color: #282a36ff; + text-color: #f8f8f2ff; + selbg: #8be9fdff; + actbg: #44475aff; + urgbg: #ff5555ff; + winbg: #8be9fdff; - normal-foreground: @text-color; - normal-background: @background-color; + normal-foreground: @text-color; + normal-background: @background-color; - selected-normal-foreground: @winbg; - selected-normal-background: @actbg; + selected-normal-foreground: @winbg; + selected-normal-background: @actbg; - urgent-foreground: @text-color; - urgent-background: @background-color; + urgent-foreground: @text-color; + urgent-background: @background-color; - selected-urgent-foreground: @background-color; - selected-urgent-background: @urgbg; + selected-urgent-foreground: @background-color; + selected-urgent-background: @urgbg; - active-foreground: @background-color; - active-background: @selbg; + active-foreground: @background-color; + active-background: @selbg; - selected-active-foreground: @winbg; - selected-active-background: @actbg; + selected-active-foreground: @winbg; + selected-active-background: @actbg; - line-margin: 2; - line-padding: 2; - separator-style: "none"; - hide-scrollbar: "true"; - margin: 0; - padding: 0; - } + line-margin: 2; + line-padding: 2; + separator-style: "none"; + hide-scrollbar: "true"; + margin: 0; + padding: 0; +} - window { - location: center; - anchor: center; - height: 75%; - width: 75%; - orientation: horizontal; - children: [mainbox]; - border: 2; - border-color: @winbg; - } +window { + location: center; + anchor: center; + height: 75%; + width: 75%; + orientation: horizontal; + children: [mainbox]; + border: 2; + border-color: @winbg; +} - mainbox { - spacing: 0.8em; - children: [ entry, listview, mode-switcher ]; - } +mainbox { + spacing: 0.8em; + children: [ entry, listview, mode-switcher ]; +} - button { - padding: 5px 2px; - } +button { + padding: 5px 2px; +} - button selected { - background-color: @active-background; - text-color: @background-color; - } +button selected { + background-color: @active-background; + text-color: @background-color; +} - inputbar { - padding: 5px; - spacing: 5px; - } +inputbar { + padding: 5px; + spacing: 5px; +} - listview { - spacing: 0.5em; - dynamic: false; - cycle: true; - } +listview { + spacing: 0.5em; + dynamic: false; + cycle: true; +} - element { - padding: 10px; - } +element { + padding: 10px; +} - element-icon { - size: 2.00ch; - } +element-icon { + size: 2.00ch; +} - entry { - expand: false; - text-color: @normal-foreground; - vertical-align: 1; - padding: 5px; - } +entry { + expand: false; + text-color: @normal-foreground; + vertical-align: 1; + padding: 5px; +} - element normal.normal { - background-color: @normal-background; - text-color: @normal-foreground; - } +element normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} - element normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; - } +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} - element normal.active { - background-color: @active-background; - text-color: @active-foreground; - } +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} - element selected.normal { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; - border: 0 5px solid 0 0; - border-color: @active-background; - } +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; + border: 0 5px solid 0 0; + border-color: @active-background; +} - element selected.urgent { - background-color: @selected-urgent-background; - text-color: @selected-urgent-foreground; - } +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} - element selected.active { - background-color: @selected-active-background; - text-color: @selected-active-foreground; - } +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} - element alternate.normal { - background-color: @normal-background; - text-color: @normal-foreground; - } +element alternate.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} - element alternate.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; - } +element alternate.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} - element alternate.active { - background-color: @active-background; - text-color: @active-foreground; - } +element alternate.active { + background-color: @active-background; + text-color: @active-foreground; +} - element-text { - background-color: inherit; - text-color: inherit; - } +element-text { + background-color: inherit; + text-color: inherit; +} - element-icon { - background-color: inherit; - } +element-icon { + background-color: inherit; +} #+end_src **** Dmenu Dracula #+begin_src css :tangle .config/rofi/themes/dmenu-dracula.rasi - /** - ,* ROFI Color theme: dmenu-dracula - ,* User: balajsra - ,* Copyright: Sravan Balaji - ,*/ +/** + ,* ROFI Color theme: dmenu-dracula + ,* User: balajsra + ,* Copyright: Sravan Balaji + ,*/ - ,* { - background-color: #282a36; - text-color: #f8f8f2; - font: "NotoSans Nerd Font 12"; - } +,* { + background-color: #282a36; + text-color: #f8f8f2; + font: "NotoSans Nerd Font 12"; +} - #window { - anchor: north; - location: north; - width: 100%; - padding: 2px 5px 2px 5px; /* top right bottom left */ - children: [ horibox ]; - } +#window { + anchor: north; + location: north; + width: 100%; + padding: 2px 5px 2px 5px; /* top right bottom left */ + children: [ horibox ]; +} - #horibox { - orientation: horizontal; - children: [ prompt, entry, listview ]; - } +#horibox { + orientation: horizontal; + children: [ prompt, entry, listview ]; +} - #listview { - layout: horizontal; - spacing: 10px; - lines: 100; - } +#listview { + layout: horizontal; + spacing: 10px; + lines: 100; +} - #entry { - expand: false; - width: 10em; - } +#entry { + expand: false; + width: 10em; +} - #element { - padding: 1px 5px 1px 5px; /* top right bottom left */ - } - #element selected { - background-color: #bd93f9; - text-color: #282a36; - } +#element { + padding: 1px 5px 1px 5px; /* top right bottom left */ +} +#element selected { + background-color: #bd93f9; + text-color: #282a36; +} - #element-text { - background-color: inherit; - text-color: inherit; - } +#element-text { + background-color: inherit; + text-color: inherit; +} - #element-icon { - background-color: inherit; - } +#element-icon { + background-color: inherit; +} #+end_src **** Blurry Full Dracula #+begin_src css :tangle .config/rofi/themes/dracula-blurry-full.rasi - /* - ,* - ,* Author : Aditya Shakya (adi1090x) - ,* Mail : adi1090x@gmail.com - ,* Github : @adi1090x - ,* Reddit : @adi1090x - ,* - ,* Dracula Theme Colors : Sravan Balaji (balajsra) - ,* Mail: balajsra@umich.edu - ,* Github: @balajsra - ,*/ +/* + ,* + ,* Author : Aditya Shakya (adi1090x) + ,* Mail : adi1090x@gmail.com + ,* Github : @adi1090x + ,* Reddit : @adi1090x + ,* + ,* Dracula Theme Colors : Sravan Balaji (balajsra) + ,* Mail: balajsra@umich.edu + ,* Github: @balajsra + ,*/ - configuration { - drun-display-format: "{name}"; - threads: 0; - scroll-method: 0; - disable-history: false; - fullscreen: false; - hide-scrollbar: true; - sidebar-mode: false; - } +configuration { + drun-display-format: "{name}"; + threads: 0; + scroll-method: 0; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} - ,* { - background: #00000000; - background-color: #282a36cc; - background-entry: #44475acc; - background-alt: #44475acc; - foreground: #f8f8f2cc; - foreground-selected: #50fa7bcc; - urgent: #ff5555cc; - urgent-selected: #ff5555cc; - } +,* { + background: #00000000; + background-color: #282a36cc; + background-entry: #44475acc; + background-alt: #44475acc; + foreground: #f8f8f2cc; + foreground-selected: #50fa7bcc; + urgent: #ff5555cc; + urgent-selected: #ff5555cc; +} - window { - transparency: "real"; - background-color: @background; - text-color: @foreground; - height: 100%; - width: 100%; - location: northwest; - anchor: northwest; - x-offset: 0; - y-offset: 0; - } +window { + transparency: "real"; + background-color: @background; + text-color: @foreground; + height: 100%; + width: 100%; + location: northwest; + anchor: northwest; + x-offset: 0; + y-offset: 0; +} - prompt { - enabled: false; - } +prompt { + enabled: false; +} - inputbar { - background-color: @background-alt; - text-color: @foreground; - expand: false; - border-radius: 6px; - margin: 0px 430px 0px 430px; - padding: 10px 10px 10px 10px; - position: north; - } +inputbar { + background-color: @background-alt; + text-color: @foreground; + expand: false; + border-radius: 6px; + margin: 0px 430px 0px 430px; + padding: 10px 10px 10px 10px; + position: north; +} - entry { - background-color: @background; - text-color: @foreground; - placeholder-color: @foreground; - expand: true; - horizontal-align: 0.5; - placeholder: "Search applications"; - blink: true; - } +entry { + background-color: @background; + text-color: @foreground; + placeholder-color: @foreground; + expand: true; + horizontal-align: 0.5; + placeholder: "Search applications"; + blink: true; +} - case-indicator { - background-color: @background; - text-color: @foreground; - spacing: 0; - } +case-indicator { + background-color: @background; + text-color: @foreground; + spacing: 0; +} - listview { - background-color: @background; - columns: 7; - spacing: 4px; - cycle: false; - dynamic: true; - layout: vertical; - } +listview { + background-color: @background; + columns: 7; + spacing: 4px; + cycle: false; + dynamic: true; + layout: vertical; +} - mainbox { - background-color: @background-color; - children: [ inputbar, listview ]; - spacing: 25px; - padding: 70px 135px 55px 135px; - } +mainbox { + background-color: @background-color; + children: [ inputbar, listview ]; + spacing: 25px; + padding: 70px 135px 55px 135px; +} - element { - background-color: @background; - text-color: @foreground; - orientation: vertical; - border-radius: 9px; - padding: 20px 0px 20px 0px; - } +element { + background-color: @background; + text-color: @foreground; + orientation: vertical; + border-radius: 9px; + padding: 20px 0px 20px 0px; +} - element-icon { - background-color: inherit; - size: 65px; - border: 0px; - } +element-icon { + background-color: inherit; + size: 65px; + border: 0px; +} - element-text { - background-color: inherit; - text-color: inherit; - expand: true; - horizontal-align: 0.5; - vertical-align: 0.5; - margin: 5px 10px 0px 10px; - } +element-text { + background-color: inherit; + text-color: inherit; + expand: true; + horizontal-align: 0.5; + vertical-align: 0.5; + margin: 5px 10px 0px 10px; +} - element normal.urgent, - element alternate.urgent { - background-color: @urgent; - text-color: @foreground; - border-radius: 9px; - } +element normal.urgent, +element alternate.urgent { + background-color: @urgent; + text-color: @foreground; + border-radius: 9px; +} - element normal.active, - element alternate.active { - background-color: @background-alt; - text-color: @foreground; - } +element normal.active, +element alternate.active { + background-color: @background-alt; + text-color: @foreground; +} - element selected { - background-color: @background-alt; - text-color: @foreground-selected; - } +element selected { + background-color: @background-alt; + text-color: @foreground-selected; +} - element selected.urgent { - background-color: @urgent-selected; - text-color: @foreground; - } +element selected.urgent { + background-color: @urgent-selected; + text-color: @foreground; +} - element selected.active { - background-color: @background-alt; - color: @foreground-selected; - } +element selected.active { + background-color: @background-alt; + color: @foreground-selected; +} #+end_src **** Official Dracula Theme #+begin_src css :tangle .config/rofi/themes/dracula.rasi - /*Dracula theme based on the Purple official rofi theme*/ +/*Dracula theme based on the Purple official rofi theme*/ - ,* { - font: "Jetbrains Mono 12"; - foreground: #f8f8f2; - background-color: #282a36; - active-background: #6272a4; - urgent-background: #ff5555; - selected-background: @active-background; - selected-urgent-background: @urgent-background; - selected-active-background: @active-background; - separatorcolor: @active-background; - bordercolor: @active-background; - } +,* { + font: "Jetbrains Mono 12"; + foreground: #f8f8f2; + background-color: #282a36; + active-background: #6272a4; + urgent-background: #ff5555; + selected-background: @active-background; + selected-urgent-background: @urgent-background; + selected-active-background: @active-background; + separatorcolor: @active-background; + bordercolor: @active-background; +} - #window { - background-color: @background; - border: 1; - border-radius: 6; - border-color: @bordercolor; - padding: 5; - } - #mainbox { - border: 0; - padding: 0; - } - #message { - border: 1px dash 0px 0px ; - border-color: @separatorcolor; - padding: 1px ; - } - #textbox { - text-color: @foreground; - } - #listview { - fixed-height: 0; - border: 2px dash 0px 0px ; - border-color: @bordercolor; - spacing: 2px ; - scrollbar: false; - padding: 2px 0px 0px ; - } - #element { - border: 0; - padding: 1px ; - } - #element.normal.normal { - background-color: @background; - text-color: @foreground; - } - #element.normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; - } - #element.normal.active { - background-color: @active-background; - text-color: @foreground; - } - #element.selected.normal { - background-color: @selected-background; - text-color: @foreground; - } - #element.selected.urgent { - background-color: @selected-urgent-background; - text-color: @foreground; - } - #element.selected.active { - background-color: @selected-active-background; - text-color: @foreground; - } - #element.alternate.normal { - background-color: @background; - text-color: @foreground; - } - #element.alternate.urgent { - background-color: @urgent-background; - text-color: @foreground; - } - #element.alternate.active { - background-color: @active-background; - text-color: @foreground; - } - #element-text { - background-color: inherit; - text-color: inherit; - } - #element-icon { - background-color: inherit; - } - #scrollbar { - width: 2px ; - border: 0; - handle-width: 8px ; - padding: 0; - } - #sidebar { - border: 2px dash 0px 0px ; - border-color: @separatorcolor; - } - #button.selected { - background-color: @selected-background; - text-color: @foreground; - } - #inputbar { - spacing: 0; - text-color: @foreground; - padding: 1px ; - } - #case-indicator { - spacing: 0; - text-color: @foreground; - } - #entry { - spacing: 0; - text-color: @foreground; - } - #prompt { - spacing: 0; - text-color: @foreground; - } - #inputbar { - children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; - } - #textbox-prompt-colon { - expand: false; - str: ":"; - margin: 0px 0.3em 0em 0em ; - text-color: @foreground; - } +#window { + background-color: @background; + border: 1; + border-radius: 6; + border-color: @bordercolor; + padding: 5; +} +#mainbox { + border: 0; + padding: 0; +} +#message { + border: 1px dash 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; +} +#textbox { + text-color: @foreground; +} +#listview { + fixed-height: 0; + border: 2px dash 0px 0px ; + border-color: @bordercolor; + spacing: 2px ; + scrollbar: false; + padding: 2px 0px 0px ; +} +#element { + border: 0; + padding: 1px ; +} +#element.normal.normal { + background-color: @background; + text-color: @foreground; +} +#element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +#element.normal.active { + background-color: @active-background; + text-color: @foreground; +} +#element.selected.normal { + background-color: @selected-background; + text-color: @foreground; +} +#element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @foreground; +} +#element.selected.active { + background-color: @selected-active-background; + text-color: @foreground; +} +#element.alternate.normal { + background-color: @background; + text-color: @foreground; +} +#element.alternate.urgent { + background-color: @urgent-background; + text-color: @foreground; +} +#element.alternate.active { + background-color: @active-background; + text-color: @foreground; +} +#element-text { + background-color: inherit; + text-color: inherit; +} +#element-icon { + background-color: inherit; +} +#scrollbar { + width: 2px ; + border: 0; + handle-width: 8px ; + padding: 0; +} +#sidebar { + border: 2px dash 0px 0px ; + border-color: @separatorcolor; +} +#button.selected { + background-color: @selected-background; + text-color: @foreground; +} +#inputbar { + spacing: 0; + text-color: @foreground; + padding: 1px ; +} +#case-indicator { + spacing: 0; + text-color: @foreground; +} +#entry { + spacing: 0; + text-color: @foreground; +} +#prompt { + spacing: 0; + text-color: @foreground; +} +#inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +#textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @foreground; +} #+end_src **** Sidetab Dracula #+begin_src css :tangle .config/rofi/themes/sidetab-dracula.rasi - /** - ,* ROFI Color theme: sidetab-dracula - ,* User: balajsra - ,* Copyright: deadguy & Sravan Balaji - ,*/ +/** + ,* ROFI Color theme: sidetab-dracula + ,* User: balajsra + ,* Copyright: deadguy & Sravan Balaji + ,*/ - configuration { - display-drun: "Launch"; - display-run: "Execute"; - display-window: "Window"; - show-icons: true; - sidebar-mode: true; - font: "NotoSans Nerd Font 12"; - } +configuration { + display-drun: "Launch"; + display-run: "Execute"; + display-window: "Window"; + show-icons: true; + sidebar-mode: true; + font: "NotoSans Nerd Font 12"; +} - ,* { - background-color: #282a36; - text-color: #f8f8f2; - selbg: #bd93f9; - actbg: #44475a; - urgbg: #ff5555; - winbg: #50fa7b; +,* { + background-color: #282a36; + text-color: #f8f8f2; + selbg: #bd93f9; + actbg: #44475a; + urgbg: #ff5555; + winbg: #50fa7b; - selected-normal-foreground: @winbg; - normal-foreground: @text-color; - selected-normal-background: @actbg; - normal-background: @background-color; + selected-normal-foreground: @winbg; + normal-foreground: @text-color; + selected-normal-background: @actbg; + normal-background: @background-color; - selected-urgent-foreground: @background-color; - urgent-foreground: @text-color; - selected-urgent-background: @urgbg; - urgent-background: @background-color; + selected-urgent-foreground: @background-color; + urgent-foreground: @text-color; + selected-urgent-background: @urgbg; + urgent-background: @background-color; - selected-active-foreground: @winbg; - active-foreground: @text-color; - selected-active-background: @actbg; - active-background: @selbg; + selected-active-foreground: @winbg; + active-foreground: @text-color; + selected-active-background: @actbg; + active-background: @selbg; - line-margin: 2; - line-padding: 2; - separator-style: "none"; - hide-scrollbar: "true"; - margin: 0; - padding: 0; - } + line-margin: 2; + line-padding: 2; + separator-style: "none"; + hide-scrollbar: "true"; + margin: 0; + padding: 0; +} - window { - location: west; - anchor: west; - height: 100%; - width: 25%; - orientation: horizontal; - children: [mainbox]; - } +window { + location: west; + anchor: west; + height: 100%; + width: 25%; + orientation: horizontal; + children: [mainbox]; +} - mainbox { - spacing: 0.8em; - children: [ entry, listview, mode-switcher ]; - } +mainbox { + spacing: 0.8em; + children: [ entry, listview, mode-switcher ]; +} - button { - padding: 5px 2px; - } +button { + padding: 5px 2px; +} - button selected { - background-color: @active-background; - text-color: @background-color; - } +button selected { + background-color: @active-background; + text-color: @background-color; +} - inputbar { - padding: 5px; - spacing: 5px; - } +inputbar { + padding: 5px; + spacing: 5px; +} - listview { - spacing: 0.5em; - dynamic: false; - cycle: true; - } +listview { + spacing: 0.5em; + dynamic: false; + cycle: true; +} - element { - padding: 10px; - } +element { + padding: 10px; +} - entry { - expand: false; - text-color: @normal-foreground; - vertical-align: 1; - padding: 5px; - } +entry { + expand: false; + text-color: @normal-foreground; + vertical-align: 1; + padding: 5px; +} - element normal.normal { - background-color: @normal-background; - text-color: @normal-foreground; - } +element normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} - element normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; - } +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} - element normal.active { - background-color: @active-background; - text-color: @active-foreground; - } +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} - element selected.normal { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; - border: 0 5px solid 0 0; - border-color: @active-background; - } +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; + border: 0 5px solid 0 0; + border-color: @active-background; +} - element selected.urgent { - background-color: @selected-urgent-background; - text-color: @selected-urgent-foreground; - } +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} - element selected.active { - background-color: @selected-active-background; - text-color: @selected-active-foreground; - } +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} - element alternate.normal { - background-color: @normal-background; - text-color: @normal-foreground; - } +element alternate.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} - element alternate.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; - } +element alternate.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} - element alternate.active { - background-color: @active-background; - text-color: @active-foreground; - } +element alternate.active { + background-color: @active-background; + text-color: @active-foreground; +} - element-text { - background-color: inherit; - text-color: inherit; - } +element-text { + background-color: inherit; + text-color: inherit; +} - element-icon { - background-color: inherit; - } +element-icon { + background-color: inherit; +} #+end_src **** Slate Dracula #+begin_src css :tangle .config/rofi/themes/slate-dracula.rasi - /** - ,* ROFI Color theme: slate-dracula - ,* User: balajsra - ,* Copyright: Sravan Balaji - ,*/ +/** + ,* ROFI Color theme: slate-dracula + ,* User: balajsra + ,* Copyright: Sravan Balaji + ,*/ - ,* { - background-color: #282a36; - border-color: #bd93f9; - text-color: #f8f8f2; - spacing: 0; - width: 1024px; - font: "NotoSans Nerd Font 12"; - } +,* { + background-color: #282a36; + border-color: #bd93f9; + text-color: #f8f8f2; + spacing: 0; + width: 1024px; + font: "NotoSans Nerd Font 12"; +} - inputbar { - border: 0 0 1px 0; /* top right bottom left */ - children: [prompt, entry]; - } +inputbar { + border: 0 0 1px 0; /* top right bottom left */ + children: [prompt, entry]; +} - prompt { - padding: 16px; - border: 2px 1px 0 2px; /* top right bottom left */ - } +prompt { + padding: 16px; + border: 2px 1px 0 2px; /* top right bottom left */ +} - textbox { - background-color: #282a36; - border: 0 0 1px 0; /* top right bottom left */ - border-color: #bd93f9; - padding: 8px 16px 8px 16px; /* top right bottom left */ - } +textbox { + background-color: #282a36; + border: 0 0 1px 0; /* top right bottom left */ + border-color: #bd93f9; + padding: 8px 16px 8px 16px; /* top right bottom left */ +} - entry { - border: 2px 2px 0px 0; /* top right bottom left */ - padding: 16px; - } +entry { + border: 2px 2px 0px 0; /* top right bottom left */ + padding: 16px; +} - listview { - cycle: true; - margin: 0 0 0px 0; /* top right bottom left */ - scrollbar: true; - } +listview { + cycle: true; + margin: 0 0 0px 0; /* top right bottom left */ + scrollbar: true; +} - element { - border: 0 2px 1px 2px; /* top right bottom left */ - padding: 16px; - } +element { + border: 0 2px 1px 2px; /* top right bottom left */ + padding: 16px; +} - element selected { - background-color: #44475a; - } +element selected { + background-color: #44475a; +} - element-text { - background-color: inherit; - text-color: inherit; - } +element-text { + background-color: inherit; + text-color: inherit; +} - element-icon { - background-color: inherit; - } +element-icon { + background-color: inherit; +} #+end_src *** Greenclip Clipboard Manager #+begin_src conf :tangle .config/greenclip.cfg - Config { - maxHistoryLength = 50, - historyPath = "~/.cache/greenclip.history", - staticHistoryPath = "~/.cache/greenclip.staticHistory", - imageCachePath = "/tmp/greenclip/", - usePrimarySelectionAsInput = False, - blacklistedApps = [], - trimSpaceFromSelection = True, - enableImageSupport = True - } +Config { + maxHistoryLength = 50, + historyPath = "~/.cache/greenclip.history", + staticHistoryPath = "~/.cache/greenclip.staticHistory", + imageCachePath = "/tmp/greenclip/", + usePrimarySelectionAsInput = False, + blacklistedApps = [], + trimSpaceFromSelection = True, + enableImageSupport = True +} #+end_src * Display Configuration & Effects @@ -2128,8 +2128,8 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc *** Post Switch #+begin_src shell :shebang #!/bin/bash :tangle .config/autorandr/postswitch - /usr/bin/nitrogen --restore # Restore wallpaper - /home/sravan/.scripts/session.sh --restart # Restart dwm +/usr/bin/nitrogen --restore # Restore wallpaper +/home/sravan/.scripts/session.sh --restart # Restart dwm #+end_src ** Compositor @@ -2138,620 +2138,620 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc **** Animations #+begin_src conf :tangle .config/picom/picom.conf - # requires https://github.com/jonaburg/picom +# requires https://github.com/jonaburg/picom - # length of animation in milliseconds (default: 300) - transition-length = 150; +# length of animation in milliseconds (default: 300) +transition-length = 150; - # animation easing on the x-axis (default: 0.1) - transition-pow-x = 0.1; +# animation easing on the x-axis (default: 0.1) +transition-pow-x = 0.1; - # animation easing on the y-axis (default: 0.1) - transition-pow-y = 0.1; +# animation easing on the y-axis (default: 0.1) +transition-pow-y = 0.1; - #animation easing on the window width (default: 0.1) - transition-pow-w = 0.1; +#animation easing on the window width (default: 0.1) +transition-pow-w = 0.1; - # animation easing on the window height (default: 0.1) - transition-pow-h = 0.1; +# animation easing on the window height (default: 0.1) +transition-pow-h = 0.1; - # whether to animate window size changes (default: true) - size-transition = true; +# whether to animate window size changes (default: true) +size-transition = true; - # whether to animate new windows from the center of the screen (default: false) - spawn-center-screen = false; +# whether to animate new windows from the center of the screen (default: false) +spawn-center-screen = false; - # whether to animate new windows from their own center (default: true) - spawn-center = true; +# whether to animate new windows from their own center (default: true) +spawn-center = true; - # Whether to animate down scaling (some programs handle this poorly) (default: false) - no-scale-down = true; +# Whether to animate down scaling (some programs handle this poorly) (default: false) +no-scale-down = true; #+end_src **** Corners #+begin_src conf :tangle .config/picom/picom.conf - # requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom - corner-radius = 10.0; - rounded-corners-exclude = [ - # "window_type = 'normal'", - # "class_g = 'awesome'", - # "class_g = 'URxvt'", - # "class_g = 'XTerm'", - # "class_g = 'kitty'", - # "class_g = 'Alacritty'", - "class_g = 'Polybar'", - "class_g = 'Rofi'", - "class_g = 'deadd-notification-center'", - # "class_g = 'code-oss'", - #"class_g = 'TelegramDesktop'", - # "class_g = 'firefox'", - # "class_g = 'Thunderbird'" - ]; - round-borders = 1; - round-borders-exclude = [ - #"class_g = 'TelegramDesktop'", - ]; +# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom +corner-radius = 10.0; +rounded-corners-exclude = [ + # "window_type = 'normal'", + # "class_g = 'awesome'", + # "class_g = 'URxvt'", + # "class_g = 'XTerm'", + # "class_g = 'kitty'", + # "class_g = 'Alacritty'", + "class_g = 'Polybar'", + "class_g = 'Rofi'", + "class_g = 'deadd-notification-center'", + # "class_g = 'code-oss'", + #"class_g = 'TelegramDesktop'", + # "class_g = 'firefox'", + # "class_g = 'Thunderbird'" +]; +round-borders = 1; +round-borders-exclude = [ + #"class_g = 'TelegramDesktop'", +]; #+end_src **** Shadows #+begin_src conf :tangle .config/picom/picom.conf - # Enabled client-side shadows on windows. Note desktop windows - # (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, - # unless explicitly requested using the wintypes option. - # - # shadow = false - shadow = false; +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +# shadow = false +shadow = false; - # The blur radius for shadows, in pixels. (defaults to 12) - # shadow-radius = 12 - shadow-radius = 7; +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 7; - # The opacity of shadows. (0.0 - 1.0, defaults to 0.75) - # shadow-opacity = .75 +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = .75 - # The left offset for shadows, in pixels. (defaults to -15) - # shadow-offset-x = -15 - shadow-offset-x = -7; +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -7; - # The top offset for shadows, in pixels. (defaults to -15) - # shadow-offset-y = -15 - shadow-offset-y = -7; +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -7; - # Avoid drawing shadows on dock/panel windows. This option is deprecated, - # you should use the *wintypes* option in your config file instead. - # - # no-dock-shadow = false +# Avoid drawing shadows on dock/panel windows. This option is deprecated, +# you should use the *wintypes* option in your config file instead. +# +# no-dock-shadow = false - # Don't draw shadows on drag-and-drop windows. This option is deprecated, - # you should use the *wintypes* option in your config file instead. - # - # no-dnd-shadow = false +# Don't draw shadows on drag-and-drop windows. This option is deprecated, +# you should use the *wintypes* option in your config file instead. +# +# no-dnd-shadow = false - # Red color value of shadow (0.0 - 1.0, defaults to 0). - # shadow-red = 0 +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 - # Green color value of shadow (0.0 - 1.0, defaults to 0). - # shadow-green = 0 +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 - # Blue color value of shadow (0.0 - 1.0, defaults to 0). - # shadow-blue = 0 +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 - # Do not paint shadows on shaped windows. Note shaped windows - # here means windows setting its shape through X Shape extension. - # Those using ARGB background is beyond our control. - # Deprecated, use - # shadow-exclude = 'bounding_shaped' - # or - # shadow-exclude = 'bounding_shaped && !rounded_corners' - # instead. - # - # shadow-ignore-shaped = '' +# Do not paint shadows on shaped windows. Note shaped windows +# here means windows setting its shape through X Shape extension. +# Those using ARGB background is beyond our control. +# Deprecated, use +# shadow-exclude = 'bounding_shaped' +# or +# shadow-exclude = 'bounding_shaped && !rounded_corners' +# instead. +# +# shadow-ignore-shaped = '' - # Specify a list of conditions of windows that should have no shadow. - # - # examples: - # shadow-exclude = "n:e:Notification"; - # - # shadow-exclude = [] - shadow-exclude = [ - # "name = 'Notification'", - # "class_g = 'Conky'", - # "class_g ?= 'Notify-osd'", - # "class_g = 'Cairo-clock'", - # "class_g = 'slop'", - # "class_g = 'Polybar'", - # "_GTK_FRAME_EXTENTS@:c" - ]; +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + # "name = 'Notification'", + # "class_g = 'Conky'", + # "class_g ?= 'Notify-osd'", + # "class_g = 'Cairo-clock'", + # "class_g = 'slop'", + # "class_g = 'Polybar'", + # "_GTK_FRAME_EXTENTS@:c" +]; - # Specify a X geometry that describes the region in which shadow should not - # be painted in, such as a dock window region. Use - # shadow-exclude-reg = "x10+0+0" - # for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. - # - # shadow-exclude-reg = "" +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" - # Crop shadow of a window fully on a particular Xinerama screen to the screen. - # xinerama-shadow-crop = false +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false #+end_src **** Fading #+begin_src conf :tangle .config/picom/picom.conf - # Fade windows in/out when opening/closing and when opacity changes, - # unless no-fading-openclose is used. - # fading = false - fading = true; +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; - # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) - # fade-in-step = 0.028 - fade-in-step = 0.03; +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.03; - # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) - # fade-out-step = 0.03 - fade-out-step = 0.03; +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.03; - # The time between steps in fade step, in milliseconds. (> 0, defaults to 10) - # fade-delta = 10 +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 - # Specify a list of conditions of windows that should not be faded. - # don't need this, we disable fading for all normal windows with wintypes: {} - fade-exclude = [ - # "class_g = 'slop'" # maim - ] +# Specify a list of conditions of windows that should not be faded. +# don't need this, we disable fading for all normal windows with wintypes: {} +fade-exclude = [ + # "class_g = 'slop'" # maim +] - # Do not fade on window open/close. - # no-fading-openclose = false - no-fading-openclose = true +# Do not fade on window open/close. +# no-fading-openclose = false +no-fading-openclose = true - # Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. - # no-fading-destroyed-argb = false +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false #+end_src **** Transparency / Opacity #+begin_src conf :tangle .config/picom/picom.conf - # Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) - inactive-opacity = 1 - # inactive-opacity = 0.8; +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +inactive-opacity = 1 +# inactive-opacity = 0.8; - # Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) - frame-opacity = 1.0 - # frame-opacity = 0.7; +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +frame-opacity = 1.0 +# frame-opacity = 0.7; - # Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) - # menu-opacity = 1.0 - # menu-opacity is depreciated use dropdown-menu and popup-menu instead. +# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) +# menu-opacity = 1.0 +# menu-opacity is depreciated use dropdown-menu and popup-menu instead. - #If using these 2 below change their values in line 530 & 531 aswell - # popup_menu = { opacity = 0.8; } - popup_menu = { opacity = 1.0; } - # dropdown_menu = { opacity = 0.8; } - dropdown_menu = { opacity = 1.0; } +#If using these 2 below change their values in line 530 & 531 aswell +# popup_menu = { opacity = 0.8; } +popup_menu = { opacity = 1.0; } +# dropdown_menu = { opacity = 0.8; } +dropdown_menu = { opacity = 1.0; } - # Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. - # inactive-opacity-override = true - inactive-opacity-override = false; +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; - # Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) - active-opacity = 1.0; +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +active-opacity = 1.0; - # Dim inactive windows. (0.0 - 1.0, defaults to 0.0) - # inactive-dim = 0.0 +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 - # Specify a list of conditions of windows that should always be considered focused. - # focus-exclude = [] - focus-exclude = [ - # "class_g = 'Cairo-clock'", - # "class_g = 'Bar'", # lemonbar - # "class_g = 'slop'" # maim - ]; +# Specify a list of conditions of windows that should always be considered focused. +# focus-exclude = [] +focus-exclude = [ + # "class_g = 'Cairo-clock'", + # "class_g = 'Bar'", # lemonbar + # "class_g = 'slop'" # maim +]; - # Use fixed inactive dim value, instead of adjusting according to window opacity. - # inactive-dim-fixed = 1.0 +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 - # Specify a list of opacity rules, in the format `PERCENT:PATTERN`, - # like `50:name *= "Firefox"`. picom-trans is recommended over this. - # Note we don't make any guarantee about possible conflicts with other - # programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. - # example: - # opacity-rule = [ "80:class_g = 'URxvt'" ]; - # - # opacity-rule = [] - opacity-rule = [ - # "80:class_g = 'Bar'", # lemonbar - # "100:class_g = 'slop'", # maim - # "100:class_g = 'XTerm'", - # "100:class_g = 'URxvt'", - # "100:class_g = 'kitty'", - # "100:class_g = 'Alacritty'", - # "80:class_g = 'Polybar'", - # "100:class_g = 'code-oss'", - # "100:class_g = 'Meld'", - # "70:class_g = 'TelegramDesktop'", - # "90:class_g = 'Joplin'", - # "100:class_g = 'firefox'", - # "100:class_g = 'Thunderbird'" - ]; +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] +opacity-rule = [ + # "80:class_g = 'Bar'", # lemonbar + # "100:class_g = 'slop'", # maim + # "100:class_g = 'XTerm'", + # "100:class_g = 'URxvt'", + # "100:class_g = 'kitty'", + # "100:class_g = 'Alacritty'", + # "80:class_g = 'Polybar'", + # "100:class_g = 'code-oss'", + # "100:class_g = 'Meld'", + # "70:class_g = 'TelegramDesktop'", + # "90:class_g = 'Joplin'", + # "100:class_g = 'firefox'", + # "100:class_g = 'Thunderbird'" +]; #+end_src **** Background Blurring #+begin_src conf :tangle .config/picom/picom.conf - # Parameters for background blurring, see the *BLUR* section for more information. - # blur-method = - # blur-size = 12 +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 12 +# +# blur-deviation = false + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = true; + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false; + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false; + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = '' +# blur-kern = "3x3box"; + +blur: { + # requires: https://github.com/ibhagwan/picom + method = "kawase"; + #method = "kernel"; + strength = 7; + # deviation = 1.0; + # kernel = "11x11gaussian"; + background = false; + background-frame = false; + background-fixed = false; + kern = "3x3box"; +} + +# Exclude conditions for background blur. +blur-background-exclude = [ + #"window_type = 'dock'", + #"window_type = 'desktop'", + #"class_g = 'URxvt'", # - # blur-deviation = false - - # Blur background of semi-transparent / ARGB windows. - # Bad in performance, with driver-dependent behavior. - # The name of the switch may change without prior notifications. - # - # blur-background = true; - - # Blur background of windows when the window frame is not opaque. - # Implies: - # blur-background - # Bad in performance, with driver-dependent behavior. The name may change. - # - # blur-background-frame = false; - - - # Use fixed blur strength rather than adjusting according to window opacity. - # blur-background-fixed = false; - - - # Specify the blur convolution kernel, with the following format: - # example: - # blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; - # - # blur-kern = '' - # blur-kern = "3x3box"; - - blur: { - # requires: https://github.com/ibhagwan/picom - method = "kawase"; - #method = "kernel"; - strength = 7; - # deviation = 1.0; - # kernel = "11x11gaussian"; - background = false; - background-frame = false; - background-fixed = false; - kern = "3x3box"; - } - - # Exclude conditions for background blur. - blur-background-exclude = [ - #"window_type = 'dock'", - #"window_type = 'desktop'", - #"class_g = 'URxvt'", - # - # prevents picom from blurring the background - # when taking selection screenshot with `main` - # https://github.com/naelstrof/maim/issues/130 - "class_g = 'peek'", - "class_g = 'Peek'", - "class_g = 'slop'", - "class_g = 'zoom'", - "_GTK_FRAME_EXTENTS@:c" - ]; + # prevents picom from blurring the background + # when taking selection screenshot with `main` + # https://github.com/naelstrof/maim/issues/130 + "class_g = 'peek'", + "class_g = 'Peek'", + "class_g = 'slop'", + "class_g = 'zoom'", + "_GTK_FRAME_EXTENTS@:c" +]; #+end_src **** General Settings #+begin_src conf :tangle .config/picom/picom.conf - # Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. - # daemon = false +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false - # Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. - # `xrender` is the default one. - # - experimental-backends = true; - backend = "glx"; - #backend = "xrender"; +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +experimental-backends = true; +backend = "glx"; +#backend = "xrender"; - # Enable/disable VSync. - # vsync = false - vsync = false +# Enable/disable VSync. +# vsync = false +vsync = false - # Enable remote control via D-Bus. See the *D-BUS API* section below for more details. - # dbus = false +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false - # Try to detect WM windows (a non-override-redirect window with no - # child that has 'WM_STATE') and mark them as active. - # - # mark-wmwin-focused = false - mark-wmwin-focused = true; +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; - # Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. - # mark-ovredir-focused = false - mark-ovredir-focused = true; +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = true; - # Try to detect windows with rounded corners and don't consider them - # shaped windows. The accuracy is not very high, unfortunately. - # - # detect-rounded-corners = false - detect-rounded-corners = true; +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; - # Detect '_NET_WM_OPACITY' on client windows, useful for window managers - # not passing '_NET_WM_OPACITY' of client windows to frame windows. - # - # detect-client-opacity = false - detect-client-opacity = true; +# Detect '_NET_WM_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; - # Specify refresh rate of the screen. If not specified or 0, picom will - # try detecting this with X RandR extension. - # - # refresh-rate = 60 - refresh-rate = 0 +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# refresh-rate = 60 +refresh-rate = 0 - # Limit picom to repaint at most once every 1 / 'refresh_rate' second to - # boost performance. This should not be used with - # vsync drm/opengl/opengl-oml - # as they essentially does sw-opti's job already, - # unless you wish to specify a lower refresh rate than the actual value. - # - # sw-opti = +# Limit picom to repaint at most once every 1 / 'refresh_rate' second to +# boost performance. This should not be used with +# vsync drm/opengl/opengl-oml +# as they essentially does sw-opti's job already, +# unless you wish to specify a lower refresh rate than the actual value. +# +# sw-opti = - # Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, - # rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, - # provided that the WM supports it. - # - # use-ewmh-active-win = false +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false - # Unredirect all windows if a full-screen opaque window is detected, - # to maximize performance for full-screen windows. Known to cause flickering - # when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious. - # - # unredir-if-possible = false - unredir-if-possible = true; - # unredir-if-possible-exclude = [ - # "class_g = 'looking-glass-client' && !focused" - # ] +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious. +# +# unredir-if-possible = false +unredir-if-possible = true; +# unredir-if-possible-exclude = [ +# "class_g = 'looking-glass-client' && !focused" +# ] - # Delay before unredirecting the window, in milliseconds. Defaults to 0. - # unredir-if-possible-delay = 0 +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 - # Conditions of windows that shouldn't be considered full-screen for unredirecting screen. - # unredir-if-possible-exclude = [] +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] - # Use 'WM_TRANSIENT_FOR' to group windows, and consider windows - # in the same group focused at the same time. - # - # detect-transient = false - detect-transient = true +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true - # Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same - # group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if - # detect-transient is enabled, too. - # - # detect-client-leader = false - detect-client-leader = true +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true - # Resize damaged region by a specific number of pixels. - # A positive value enlarges it while a negative one shrinks it. - # If the value is positive, those additional pixels will not be actually painted - # to screen, only used in blur calculation, and such. (Due to technical limitations, - # with use-damage, those pixels will still be incorrectly painted to screen.) - # Primarily used to fix the line corruption issues of blur, - # in which case you should use the blur radius value here - # (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, - # with a 5x5 one you use `--resize-damage 2`, and so on). - # May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. - # - # resize-damage = 1 +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 - # Specify a list of conditions of windows that should be painted with inverted color. - # Resource-hogging, and is not well tested. - # - # invert-color-include = [] +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] - # GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. - # Might cause incorrect opacity when rendering transparent content (but never - # practically happened) and may not work with blur-background. - # My tests show a 15% performance boost. Recommended. - # - # glx-no-stencil = false +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +# glx-no-stencil = false - # GLX backend: Avoid rebinding pixmap on window damage. - # Probably could improve performance on rapid window content changes, - # but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). - # Recommended if it works. - # - # glx-no-rebind-pixmap = false +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false - # Disable the use of damage information. - # This cause the whole screen to be redrawn everytime, instead of the part of the screen - # has actually changed. Potentially degrades the performance, but might fix some artifacts. - # The opposing option is use-damage - # - # no-use-damage = false - #use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened) - #Changing use-damage to false fixes the problem - use-damage = false +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened) +#Changing use-damage to false fixes the problem +use-damage = false - # Use X Sync fence to sync clients' draw calls, to make sure all draw - # calls are finished before picom starts drawing. Needed on nvidia-drivers - # with GLX backend for some users. - # - # xrender-sync-fence = false +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false - # GLX backend: Use specified GLSL fragment shader for rendering window contents. - # See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` - # in the source tree for examples. - # - # glx-fshader-win = '' +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = '' - # Force all windows to be painted with blending. Useful if you - # have a glx-fshader-win that could turn opaque pixels transparent. - # - # force-win-blend = false +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false - # Do not use EWMH to detect fullscreen windows. - # Reverts to checking if a window is fullscreen based only on its size and coordinates. - # - # no-ewmh-fullscreen = false +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false - # Dimming bright windows so their brightness doesn't exceed this set value. - # Brightness of a window is estimated by averaging all pixels in the window, - # so this could comes with a performance hit. - # Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) - # - # max-brightness = 1.0 +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 - # Make transparent windows clip other windows like non-transparent windows do, - # instead of blending on top of them. - # - # transparent-clipping = false +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false - # Set the log level. Possible values are: - # "trace", "debug", "info", "warn", "error" - # in increasing level of importance. Case doesn't matter. - # If using the "TRACE" log level, it's better to log into a file - # using *--log-file*, since it can generate a huge stream of logs. - # - # log-level = "debug" - log-level = "info"; +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "info"; - # Set the log file. - # If *--log-file* is never specified, logs will be written to stderr. - # Otherwise, logs will to written to the given file, though some of the early - # logs might still be written to the stderr. - # When setting this option from the config file, it is recommended to use an absolute path. - # - # log-file = '/path/to/your/log/file' +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = '/path/to/your/log/file' - # Show all X errors (for debugging) - # show-all-xerrors = false +# Show all X errors (for debugging) +# show-all-xerrors = false - # Write process ID to a file. - # write-pid-path = '/path/to/your/log/file' +# Write process ID to a file. +# write-pid-path = '/path/to/your/log/file' - # Window type settings - # - # 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: - # "unknown", "desktop", "dock", "toolbar", "menu", "utility", - # "splash", "dialog", "normal", "dropdown_menu", "popup_menu", - # "tooltip", "notification", "combo", and "dnd". - # - # Following per window-type options are available: :: - # - # fade, shadow::: - # Controls window-type-specific shadow and fade settings. - # - # opacity::: - # Controls default opacity of the window type. - # - # focus::: - # Controls whether the window of this type is to be always considered focused. - # (By default, all window types except "normal" and "dialog" has this on.) - # - # full-shadow::: - # Controls whether shadow is drawn under the parts of the window that you - # normally won't be able to see. Useful when the window has parts of it - # transparent, and you want shadows in those areas. - # - # redir-ignore::: - # Controls whether this type of windows should cause screen to become - # redirected again after been unredirected. If you have unredir-if-possible - # set, and doesn't want certain window to cause unnecessary screen redirection, - # you can set this to `true`. - # - wintypes: - { - normal = { fade = false; shadow = false; } - tooltip = { fade = true; shadow = true; opacity = 1.0; focus = true; full-shadow = false; }; - dock = { shadow = false; } - dnd = { shadow = false; } - # popup_menu = { opacity = 0.8; } - popup_menu = { opacity = 1.0; } - # dropdown_menu = { opacity = 0.8; } - dropdown_menu = { opacity = 1.0; } - }; +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + normal = { fade = false; shadow = false; } + tooltip = { fade = true; shadow = true; opacity = 1.0; focus = true; full-shadow = false; }; + dock = { shadow = false; } + dnd = { shadow = false; } + # popup_menu = { opacity = 0.8; } + popup_menu = { opacity = 1.0; } + # dropdown_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 1.0; } +}; #+end_src **** Control Script #+begin_src shell :shebang #!/bin/bash :tangle .scripts/picom.sh - help_menu() { - echo "Script to interact with picom. Use only one argument at a time." - echo " - Toggle On/Off: picom.sh OR picom.sh --toggle OR picom.sh -t" - echo " - Turn On: picom.sh --on" - echo " - Turn Off: picom.sh --off" - echo " - Help: picom.sh --help OR picom.sh -h" - } +help_menu() { + echo "Script to interact with picom. Use only one argument at a time." + echo " - Toggle On/Off: picom.sh OR picom.sh --toggle OR picom.sh -t" + echo " - Turn On: picom.sh --on" + echo " - Turn Off: picom.sh --off" + echo " - Help: picom.sh --help OR picom.sh -h" +} - is_running() { - if pgrep -x picom >/dev/null; then - echo 1 - else - echo 0 - fi - } +is_running() { + if pgrep -x picom >/dev/null; then + echo 1 + else + echo 0 + fi +} - rofi_menu() { - declare -a options=( - "⏼ Toggle - toggle" - " Turn On - on" - " Turn Off - off" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + "⏼ Toggle - toggle" + " Turn On - on" + " Turn Off - off" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --toggle) - if [ $(is_running) -eq '1' ]; then - main --off - else - main --on - fi - ;; - --on) - if [ $(is_running) -eq '1' ]; then - killall picom - fi +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --toggle) + if [ $(is_running) -eq '1' ]; then + main --off + else + main --on + fi + ;; + --on) + if [ $(is_running) -eq '1' ]; then + killall picom + fi - picom --config /home/sravan/.config/picom/picom.conf & + picom --config /home/sravan/.config/picom/picom.conf & - notify-send "Turning Picom ON" - ;; - --off) - if [ $(is_running) -eq '1' ]; then - killall picom - fi + notify-send "Turning Picom ON" + ;; + --off) + if [ $(is_running) -eq '1' ]; then + killall picom + fi - notify-send "Turning Picom OFF" - ;; - --rofi) - rofi_menu - ;; - esac - fi - } + notify-send "Turning Picom OFF" + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src ** Night Mode @@ -2759,63 +2759,63 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc *** Redshift #+begin_src conf :tangle .config/redshift/redshift.conf - ; Global settings for redshift - [redshift] - ; Set the day and night screen temperatures - temp-day=6500 - temp-night=3500 +; Global settings for redshift +[redshift] +; Set the day and night screen temperatures +temp-day=6500 +temp-night=3500 - ; Enable/Disable a smooth transition between day and night - ; 0 will cause a direct change from day to night screen temperature. - ; 1 will gradually increase or decrease the screen temperature. - transition=1 +; Enable/Disable a smooth transition between day and night +; 0 will cause a direct change from day to night screen temperature. +; 1 will gradually increase or decrease the screen temperature. +transition=1 - ; Set the screen brightness. Default is 1.0. - ;brightness=0.9 - ; It is also possible to use different settings for day and night - ; since version 1.8. - ;brightness-day=0.7 - ;brightness-night=0.4 - ; Set the screen gamma (for all colors, or each color channel - ; individually) - ; gamma=0.8 - ;gamma=0.8:0.7:0.8 - ; This can also be set individually for day and night since - ; version 1.10. - ;gamma-day=0.8:0.7:0.8 - ;gamma-night=0.6 +; Set the screen brightness. Default is 1.0. +;brightness=0.9 +; It is also possible to use different settings for day and night +; since version 1.8. +;brightness-day=0.7 +;brightness-night=0.4 +; Set the screen gamma (for all colors, or each color channel +; individually) +; gamma=0.8 +;gamma=0.8:0.7:0.8 +; This can also be set individually for day and night since +; version 1.10. +;gamma-day=0.8:0.7:0.8 +;gamma-night=0.6 - ; Set the location-provider: 'geoclue', 'geoclue2', 'manual' - ; type 'redshift -l list' to see possible values. - ; The location provider settings are in a different section. - location-provider=manual +; Set the location-provider: 'geoclue', 'geoclue2', 'manual' +; type 'redshift -l list' to see possible values. +; The location provider settings are in a different section. +location-provider=manual - ; Set the adjustment-method: 'randr', 'vidmode' - ; type 'redshift -m list' to see all possible values. - ; 'randr' is the preferred method, 'vidmode' is an older API. - ; but works in some cases when 'randr' does not. - ; The adjustment method settings are in a different section. - adjustment-method=randr +; Set the adjustment-method: 'randr', 'vidmode' +; type 'redshift -m list' to see all possible values. +; 'randr' is the preferred method, 'vidmode' is an older API. +; but works in some cases when 'randr' does not. +; The adjustment method settings are in a different section. +adjustment-method=randr - ; Configuration of the location-provider: - ; type 'redshift -l PROVIDER:help' to see the settings. - ; ex: 'redshift -l manual:help' - ; Keep in mind that longitudes west of Greenwich (e.g. the Americas) - ; are negative numbers. - [manual] - ; Farmington Hills, MI - lat=42.4990 - lon=-83.3677 +; Configuration of the location-provider: +; type 'redshift -l PROVIDER:help' to see the settings. +; ex: 'redshift -l manual:help' +; Keep in mind that longitudes west of Greenwich (e.g. the Americas) +; are negative numbers. +[manual] +; Farmington Hills, MI +lat=42.4990 +lon=-83.3677 - ; Configuration of the adjustment-method - ; type 'redshift -m METHOD:help' to see the settings. - ; ex: 'redshift -m randr:help' - ; In this example, randr is configured to adjust screen 1. - ; Note that the numbering starts from 0, so this is actually the - ; second screen. If this option is not specified, Redshift will try - ; to adjust _all_ screens. - ; [randr] - ; screen=1 +; Configuration of the adjustment-method +; type 'redshift -m METHOD:help' to see the settings. +; ex: 'redshift -m randr:help' +; In this example, randr is configured to adjust screen 1. +; Note that the numbering starts from 0, so this is actually the +; second screen. If this option is not specified, Redshift will try +; to adjust _all_ screens. +; [randr] +; screen=1 #+end_src * Lock Screen @@ -2824,59 +2824,59 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc *** Default Options #+begin_src conf :tangle .config/betterlockscreenrc - display_on=0 - span_image=false - lock_timeout=300 - fx_list=(dim blur dimblur pixel dimpixel color) - dim_level=40 - blur_level=1 - pixel_scale=10,1000 - solid_color=333333 - wallpaper_cmd="feh --bg-fill" - # i3lockcolor_bin="i3lock-color" # Manually set command for i3lock-color +display_on=0 +span_image=false +lock_timeout=300 +fx_list=(dim blur dimblur pixel dimpixel color) +dim_level=40 +blur_level=1 +pixel_scale=10,1000 +solid_color=333333 +wallpaper_cmd="feh --bg-fill" +# i3lockcolor_bin="i3lock-color" # Manually set command for i3lock-color #+end_src *** Theme Options #+begin_src conf :tangle .config/betterlockscreenrc - loginbox=282a36ff - loginshadow=282a36ff - locktext="Enter password to unlock..." - font="sans-serif" - ringcolor=44475aff - insidecolor=00000000 - separatorcolor=00000000 - ringvercolor=50fa7bff - insidevercolor=50fa7bff - ringwrongcolor=ff5555ff - insidewrongcolor=ff5555ff - timecolor=f8f8f2ff - time_format="%X" - greetercolor=f8f8f2ff - layoutcolor=f8f8f2ff - keyhlcolor=bd93f9ff - bshlcolor=8be9fdff - verifcolor=50fa7bff - wrongcolor=ff5555ff - modifcolor=ff5555ff - bgcolor=282a36ff +loginbox=282a36ff +loginshadow=282a36ff +locktext="Enter password to unlock..." +font="sans-serif" +ringcolor=44475aff +insidecolor=00000000 +separatorcolor=00000000 +ringvercolor=50fa7bff +insidevercolor=50fa7bff +ringwrongcolor=ff5555ff +insidewrongcolor=ff5555ff +timecolor=f8f8f2ff +time_format="%X" +greetercolor=f8f8f2ff +layoutcolor=f8f8f2ff +keyhlcolor=bd93f9ff +bshlcolor=8be9fdff +verifcolor=50fa7bff +wrongcolor=ff5555ff +modifcolor=ff5555ff +bgcolor=282a36ff #+end_src *** Pre-Lock #+begin_src conf :tangle .config/betterlockscreenrc - prelock() { - /home/sravan/.scripts/deadd.sh --pause - } +prelock() { + /home/sravan/.scripts/deadd.sh --pause +} #+end_src *** Post-Lock #+begin_src conf :tangle .config/betterlockscreenrc - # custom postlock - postlock() { - /home/sravan/.scripts/deadd.sh --unpause - } +# custom postlock +postlock() { + /home/sravan/.scripts/deadd.sh --unpause +} #+end_src * Terminal & Shell @@ -2885,102 +2885,102 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc *** Starship #+begin_src conf :tangle .config/starship.toml - # Don't print a new line at the start of the prompt - add_newline = false +# Don't print a new line at the start of the prompt +add_newline = false - format = "[◆](bold green) $all" +format = "[◆](bold green) $all" - [aws] - symbol = " " +[aws] +symbol = " " - [battery] - full_symbol = "" - charging_symbol = "" - discharging_symbol = "" +[battery] +full_symbol = "" +charging_symbol = "" +discharging_symbol = "" - [character] - format = "$symbol" - success_symbol = "[❯](bold purple)[❯](bold cyan)[❯](bold green) " - error_symbol = "[❯❯❯](bold red) " +[character] +format = "$symbol" +success_symbol = "[❯](bold purple)[❯](bold cyan)[❯](bold green) " +error_symbol = "[❯❯❯](bold red) " - [cmd_duration] - min_time = 10_000 +[cmd_duration] +min_time = 10_000 - [conda] - symbol = " " +[conda] +symbol = " " - [dart] - symbol = " " +[dart] +symbol = " " - [directory] - format = "[$path]($style)[$read_only]($read_only_style) " - truncation_length = 4 - truncate_to_repo = false - truncation_symbol = "…/" - read_only = "" +[directory] +format = "[$path]($style)[$read_only]($read_only_style) " +truncation_length = 4 +truncate_to_repo = false +truncation_symbol = "…/" +read_only = "" - [docker_context] - symbol = " " +[docker_context] +symbol = " " - [elixir] - symbol = " " +[elixir] +symbol = " " - [elm] - symbol = " " +[elm] +symbol = " " - [git_branch] - symbol = " " +[git_branch] +symbol = " " - [golang] - symbol = " " +[golang] +symbol = " " - # [haskell] - # symbol = " " +# [haskell] +# symbol = " " - [hg_branch] - symbol = " " +[hg_branch] +symbol = " " - [java] - symbol = " " +[java] +symbol = " " - [julia] - symbol = " " +[julia] +symbol = " " - [line_break] - disabled = false +[line_break] +disabled = false - [memory_usage] - symbol = " " +[memory_usage] +symbol = " " - [nim] - symbol = " " +[nim] +symbol = " " - [nix_shell] - symbol = " " +[nix_shell] +symbol = " " - [nodejs] - symbol = " " +[nodejs] +symbol = " " - [package] - symbol = " " +[package] +symbol = " " - [perl] - symbol = " " +[perl] +symbol = " " - [php] - symbol = " " +[php] +symbol = " " - [python] - symbol = " " +[python] +symbol = " " - [ruby] - symbol = " " +[ruby] +symbol = " " - [rust] - symbol = " " +[rust] +symbol = " " - [swift] - symbol = "ﯣ " +[swift] +symbol = "ﯣ " #+end_src *** Neofetch @@ -2988,1187 +2988,1187 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc **** Main Configuration #+begin_src conf :tangle .config/neofetch/config.conf - # See this wiki page for more info: - # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info - print_info() { - info title - info underline +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline - info "OS" distro - info "Host" model - info "Kernel" kernel - info "Uptime" uptime - info "Packages" packages - info "Shell" shell - # info "Resolution" resolution - info "DE" de - info "WM" wm - info "WM Theme" wm_theme - info "Theme" theme - info "Icons" icons - info "Terminal" term - info "Terminal Font" term_font - info "CPU" cpu - info "GPU" gpu - # info "GPU Driver" gpu_driver # Linux/macOS only - # info "CPU Usage" cpu_usage - # info "Memory" memory - # info "Disk" disk - # info "Battery" battery - info "Font" font - # info "Song" song - # [[ "$player" ]] && prin "Music Player" "$player" - # info "Local IP" local_ip - # info "Public IP" public_ip - # info "Users" users - # info "Locale" locale # This only works on glibc systems. - info cols - } + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + # info "Resolution" resolution + info "DE" de + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "Terminal Font" term_font + info "CPU" cpu + info "GPU" gpu + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # info "Memory" memory + # info "Disk" disk + # info "Battery" battery + info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + info cols +} #+end_src **** Title #+begin_src conf :tangle .config/neofetch/config.conf - # Hide/Show Fully qualified domain name. - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --title_fqdn - title_fqdn="off" +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" #+end_src **** Kernel #+begin_src conf :tangle .config/neofetch/config.conf - # Shorten the output of the kernel function. - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --kernel_shorthand - # Supports: Everything except *BSDs (except PacBSD and PC-BSD) - # - # Example: - # on: '4.8.9-1-ARCH' - # off: 'Linux 4.8.9-1-ARCH' - kernel_shorthand="on" +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" #+end_src **** Distro #+begin_src conf :tangle .config/neofetch/config.conf - # Shorten the output of the distro function - # - # Default: 'off' - # Values: 'on', 'tiny', 'off' - # Flag: --distro_shorthand - # Supports: Everything except Windows and Haiku - distro_shorthand="off" +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" - # Show/Hide OS Architecture. - # Show 'x86_64', 'x86' and etc in 'Distro:' output. - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --os_arch - # - # Example: - # on: 'Arch Linux x86_64' - # off: 'Arch Linux' - os_arch="on" +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" #+end_src **** Uptime #+begin_src conf :tangle .config/neofetch/config.conf - # Shorten the output of the uptime function - # - # Default: 'on' - # Values: 'on', 'tiny', 'off' - # Flag: --uptime_shorthand - # - # Example: - # on: '2 days, 10 hours, 3 mins' - # tiny: '2d 10h 3m' - # off: '2 days, 10 hours, 3 minutes' - uptime_shorthand="on" +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" #+end_src **** Memory #+begin_src conf :tangle .config/neofetch/config.conf - # Show memory pecentage in output. - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --memory_percent - # - # Example: - # on: '1801MiB / 7881MiB (22%)' - # off: '1801MiB / 7881MiB' - memory_percent="on" +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="on" #+end_src **** Packages #+begin_src conf :tangle .config/neofetch/config.conf - # Show/Hide Package Manager names. - # - # Default: 'tiny' - # Values: 'on', 'tiny' 'off' - # Flag: --package_managers - # - # Example: - # on: '998 (pacman), 8 (flatpak), 4 (snap)' - # tiny: '908 (pacman, flatpak, snap)' - # off: '908' - package_managers="on" +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" #+end_src **** Shell #+begin_src conf :tangle .config/neofetch/config.conf - # Show the path to $SHELL - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --shell_path - # - # Example: - # on: '/bin/bash' - # off: 'bash' - shell_path="off" +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" - # Show $SHELL version - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --shell_version - # - # Example: - # on: 'bash 4.4.5' - # off: 'bash' - shell_version="on" +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" #+end_src **** CPU #+begin_src conf :tangle .config/neofetch/config.conf - # CPU speed type - # - # Default: 'bios_limit' - # Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. - # Flag: --speed_type - # Supports: Linux with 'cpufreq' - # NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. - speed_type="bios_limit" +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" - # CPU speed shorthand - # - # Default: 'off' - # Values: 'on', 'off'. - # Flag: --speed_shorthand - # NOTE: This flag is not supported in systems with CPU speed less than 1 GHz - # - # Example: - # on: 'i7-6500U (4) @ 3.1GHz' - # off: 'i7-6500U (4) @ 3.100GHz' - speed_shorthand="off" +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" - # Enable/Disable CPU brand in output. - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --cpu_brand - # - # Example: - # on: 'Intel i7-6500U' - # off: 'i7-6500U (4)' - cpu_brand="on" +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" - # CPU Speed - # Hide/Show CPU speed. - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --cpu_speed - # - # Example: - # on: 'Intel i7-6500U (4) @ 3.1GHz' - # off: 'Intel i7-6500U (4)' - cpu_speed="on" +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" - # CPU Cores - # Display CPU cores in output - # - # Default: 'logical' - # Values: 'logical', 'physical', 'off' - # Flag: --cpu_cores - # Support: 'physical' doesn't work on BSD. - # - # Example: - # logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) - # physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) - # off: 'Intel i7-6500U @ 3.1GHz' - cpu_cores="logical" +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" - # CPU Temperature - # Hide/Show CPU temperature. - # Note the temperature is added to the regular CPU function. - # - # Default: 'off' - # Values: 'C', 'F', 'off' - # Flag: --cpu_temp - # Supports: Linux, BSD - # NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable - # coretemp kernel module. This only supports newer Intel processors. - # - # Example: - # C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' - # F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' - # off: 'Intel i7-6500U (4) @ 3.1GHz' - cpu_temp="F" +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="F" #+end_src **** GPU #+begin_src conf :tangle .config/neofetch/config.conf - # Enable/Disable GPU Brand - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --gpu_brand - # - # Example: - # on: 'AMD HD 7950' - # off: 'HD 7950' - gpu_brand="on" +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" - # Which GPU to display - # - # Default: 'all' - # Values: 'all', 'dedicated', 'integrated' - # Flag: --gpu_type - # Supports: Linux - # - # Example: - # all: - # GPU1: AMD HD 7950 - # GPU2: Intel Integrated Graphics - # - # dedicated: - # GPU1: AMD HD 7950 - # - # integrated: - # GPU1: Intel Integrated Graphics - gpu_type="all" +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" #+end_src **** Resolution #+begin_src conf :tangle .config/neofetch/config.conf - # Display refresh rate next to each monitor - # Default: 'off' - # Values: 'on', 'off' - # Flag: --refresh_rate - # Supports: Doesn't work on Windows. - # - # Example: - # on: '1920x1080 @ 60Hz' - # off: '1920x1080' - refresh_rate="on" +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="on" #+end_src **** Gtk Theme / Icons / Font #+begin_src conf :tangle .config/neofetch/config.conf - # Shorten output of GTK Theme / Icons / Font - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --gtk_shorthand - # - # Example: - # on: 'Numix, Adwaita' - # off: 'Numix [GTK2], Adwaita [GTK3]' - gtk_shorthand="off" +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" - # Enable/Disable gtk2 Theme / Icons / Font - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --gtk2 - # - # Example: - # on: 'Numix [GTK2], Adwaita [GTK3]' - # off: 'Adwaita [GTK3]' - gtk2="on" +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" - # Enable/Disable gtk3 Theme / Icons / Font - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --gtk3 - # - # Example: - # on: 'Numix [GTK2], Adwaita [GTK3]' - # off: 'Numix [GTK2]' - gtk3="on" +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" #+end_src **** IP Address #+begin_src conf :tangle .config/neofetch/config.conf - # Website to ping for the public IP - # - # Default: 'http://ident.me' - # Values: 'url' - # Flag: --ip_host - public_ip_host="http://ident.me" +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" - # Public IP timeout. - # - # Default: '2' - # Values: 'int' - # Flag: --ip_timeout - public_ip_timeout=2 +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 #+end_src **** Desktop Environment #+begin_src conf :tangle .config/neofetch/config.conf - # Show Desktop Environment version - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --de_version - de_version="on" +# Show Desktop Environment version +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" #+end_src **** Disk #+begin_src conf :tangle .config/neofetch/config.conf - # Which disks to display. - # The values can be any /dev/sdXX, mount point or directory. - # NOTE: By default we only show the disk info for '/'. - # - # Default: '/' - # Values: '/', '/dev/sdXX', '/path/to/drive'. - # Flag: --disk_show - # - # Example: - # disk_show=('/' '/dev/sdb1'): - # 'Disk (/): 74G / 118G (66%)' - # 'Disk (/mnt/Videos): 823G / 893G (93%)' - # - # disk_show=('/'): - # 'Disk (/): 74G / 118G (66%)' - # - disk_show=('/') +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') - # Disk subtitle. - # What to append to the Disk subtitle. - # - # Default: 'mount' - # Values: 'mount', 'name', 'dir', 'none' - # Flag: --disk_subtitle - # - # Example: - # name: 'Disk (/dev/sda1): 74G / 118G (66%)' - # 'Disk (/dev/sdb2): 74G / 118G (66%)' - # - # mount: 'Disk (/): 74G / 118G (66%)' - # 'Disk (/mnt/Local Disk): 74G / 118G (66%)' - # 'Disk (/mnt/Videos): 74G / 118G (66%)' - # - # dir: 'Disk (/): 74G / 118G (66%)' - # 'Disk (Local Disk): 74G / 118G (66%)' - # 'Disk (Videos): 74G / 118G (66%)' - # - # none: 'Disk: 74G / 118G (66%)' - # 'Disk: 74G / 118G (66%)' - # 'Disk: 74G / 118G (66%)' - disk_subtitle="mount" +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" - # Disk percent. - # Show/Hide disk percent. - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --disk_percent - # - # Example: - # on: 'Disk (/): 74G / 118G (66%)' - # off: 'Disk (/): 74G / 118G' - disk_percent="on" +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" #+end_src **** Song #+begin_src conf :tangle .config/neofetch/config.conf - # Manually specify a music player. - # - # Default: 'auto' - # Values: 'auto', 'player-name' - # Flag: --music_player - # - # Available values for 'player-name': - # - # amarok - # audacious - # banshee - # bluemindo - # clementine - # cmus - # deadbeef - # deepin-music - # dragon - # elisa - # exaile - # gnome-music - # gmusicbrowser - # gogglesmm - # guayadeque - # io.elementary.music - # iTunes - # juk - # lollypop - # mocp - # mopidy - # mpd - # muine - # netease-cloud-music - # pogo - # pragha - # qmmp - # quodlibet - # rhythmbox - # sayonara - # smplayer - # spotify - # strawberry - # tomahawk - # vlc - # xmms2d - # xnoise - # yarock - music_player="auto" +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" - # Format to display song information. - # - # Default: '%artist% - %album% - %title%' - # Values: '%artist%', '%album%', '%title%' - # Flag: --song_format - # - # Example: - # default: 'Song: Jet - Get Born - Sgt Major' - song_format="%artist% - %album% - %title%" +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" - # Print the Artist, Album and Title on separate lines - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --song_shorthand - # - # Example: - # on: 'Artist: The Fratellis' - # 'Album: Costello Music' - # 'Song: Chelsea Dagger' - # - # off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' - song_shorthand="off" +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" - # 'mpc' arguments (specify a host, password etc). - # - # Default: '' - # Example: mpc_args=(-h HOST -P PASSWORD) - mpc_args=() +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() #+end_src **** Text Colors #+begin_src conf :tangle .config/neofetch/config.conf - # Text Colors - # - # Default: 'distro' - # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' - # Flag: --colors - # - # Each number represents a different part of the text in - # this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' - # - # Example: - # colors=(distro) - Text is colored based on Distro colors. - # colors=(4 6 1 8 8 6) - Text is colored in the order above. - colors=(distro) +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) #+end_src **** Text Options #+begin_src conf :tangle .config/neofetch/config.conf - # Toggle bold text - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --bold - bold="on" +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" - # Enable/Disable Underline - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --underline - underline_enabled="on" +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" - # Underline character - # - # Default: '-' - # Values: 'string' - # Flag: --underline_char - underline_char="-" +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" - # Info Separator - # Replace the default separator with the specified string. - # - # Default: ':' - # Flag: --separator - # - # Example: - # separator="->": 'Shell-> bash' - # separator=" =": 'WM = dwm' - separator=":" +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" #+end_src **** Color Blocks #+begin_src conf :tangle .config/neofetch/config.conf - # Color block range - # The range of colors to print. - # - # Default: '0', '15' - # Values: 'num' - # Flag: --block_range - # - # Example: - # - # Display colors 0-7 in the blocks. (8 colors) - # neofetch --block_range 0 7 - # - # Display colors 0-15 in the blocks. (16 colors) - # neofetch --block_range 0 15 - block_range=(0 15) +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) - # Toggle color blocks - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --color_blocks - color_blocks="on" +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" - # Color block width in spaces - # - # Default: '3' - # Values: 'num' - # Flag: --block_width - block_width=3 +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 - # Color block height in lines - # - # Default: '1' - # Values: 'num' - # Flag: --block_height - block_height=1 +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 - # Color Alignment - # - # Default: 'auto' - # Values: 'auto', 'num' - # Flag: --col_offset - # - # Number specifies how far from the left side of the terminal (in spaces) to - # begin printing the columns, in case you want to e.g. center them under your - # text. - # Example: - # col_offset="auto" - Default behavior of neofetch - # col_offset=7 - Leave 7 spaces then print the colors - col_offset="auto" +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" #+end_src **** Progress Bars #+begin_src conf :tangle .config/neofetch/config.conf - # Bar characters - # - # Default: '-', '=' - # Values: 'string', 'string' - # Flag: --bar_char - # - # Example: - # neofetch --bar_char 'elapsed' 'total' - # neofetch --bar_char '-' '=' - bar_char_elapsed="-" - bar_char_total="=" +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" - # Toggle Bar border - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --bar_border - bar_border="on" +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" - # Progress bar length in spaces - # Number of chars long to make the progress bars. - # - # Default: '15' - # Values: 'num' - # Flag: --bar_length - bar_length=15 +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 - # Progress bar colors - # When set to distro, uses your distro's logo colors. - # - # Default: 'distro', 'distro' - # Values: 'distro', 'num' - # Flag: --bar_colors - # - # Example: - # neofetch --bar_colors 3 4 - # neofetch --bar_colors distro 5 - bar_color_elapsed="distro" - bar_color_total="distro" +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" - # Info display - # Display a bar with the info. - # - # Default: 'off' - # Values: 'bar', 'infobar', 'barinfo', 'off' - # Flags: --cpu_display - # --memory_display - # --battery_display - # --disk_display - # - # Example: - # bar: '[---=======]' - # infobar: 'info [---=======]' - # barinfo: '[---=======] info' - # off: 'info' - cpu_display="off" - memory_display="off" - battery_display="off" - disk_display="off" +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" #+end_src **** Backend Settings #+begin_src conf :tangle .config/neofetch/config.conf - # Image backend. - # - # Default: 'ascii' - # Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', - # 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' - # Flag: --backend - image_backend="ascii" +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" - # Image Source - # - # Which image or ascii file to display. - # - # Default: 'auto' - # Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' - # 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' - # Flag: --source - # - # NOTE: 'auto' will pick the best image source for whatever image backend is used. - # In ascii mode, distro ascii art will be used and in an image mode, your - # wallpaper will be used. - image_source="auto" +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" #+end_src ***** Ascii Options #+begin_src conf :tangle .config/neofetch/config.conf - # Ascii distro - # Which distro's ascii art to display. - # - # Default: 'auto' - # Values: 'auto', 'distro_name' - # Flag: --ascii_distro - # NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, AOSC, - # Apricity, ArcoLinux, ArchBox, ARCHlabs, ArchStrike, - # XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, Bitrig, - # BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, - # BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, - # Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, - # Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, - # DesaOS, Devuan, DracOS, DragonFly, Drauger, Elementary, - # EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, - # FreeMiNT, Frugalware, Funtoo, GalliumOS, Gentoo, Pentoo, - # gNewSense, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, - # Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, - # Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, - # LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, - # Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, - # Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, - # NuTyX, OBRevenge, OpenBSD, OpenIndiana, OpenMandriva, - # OpenWrt, osmc, Oracle, PacBSD, Parabola, Pardus, Parrot, - # Parsix, TrueOS, PCLinuxOS, Peppermint, popos, Porteus, - # PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, Raspbian, - # Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata, - # Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor, - # SharkLinux, Siduction, Slackware, SliTaz, SmartOS, Solus, - # Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap, - # openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel, - # Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, Ubuntu, - # Void, Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX - # have ascii logos - # NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. - # Use '{distro name}_old' to use the old logos. - # NOTE: Ubuntu has flavor variants. - # Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, - # Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. - # NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, - # CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, - # Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, - # Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, - # Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, - # postmarketOS, and Void have a smaller logo variant. - # Use '{distro name}_small' to use the small variants. - ascii_distro="auto" +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, AOSC, +# Apricity, ArcoLinux, ArchBox, ARCHlabs, ArchStrike, +# XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, Bitrig, +# BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Gentoo, Pentoo, +# gNewSense, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, OpenIndiana, OpenMandriva, +# OpenWrt, osmc, Oracle, PacBSD, Parabola, Pardus, Parrot, +# Parsix, TrueOS, PCLinuxOS, Peppermint, popos, Porteus, +# PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, Raspbian, +# Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata, +# Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor, +# SharkLinux, Siduction, Slackware, SliTaz, SmartOS, Solus, +# Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap, +# openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel, +# Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, Ubuntu, +# Void, Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX +# have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" - # Ascii Colors - # - # Default: 'distro' - # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' - # Flag: --ascii_colors - # - # Example: - # ascii_colors=(distro) - Ascii is colored based on Distro colors. - # ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. - ascii_colors=(distro) +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) - # Bold ascii logo - # Whether or not to bold the ascii logo. - # - # Default: 'on' - # Values: 'on', 'off' - # Flag: --ascii_bold - ascii_bold="on" +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" #+end_src ***** Image Options #+begin_src conf :tangle .config/neofetch/config.conf - # Image loop - # Setting this to on will make neofetch redraw the image constantly until - # Ctrl+C is pressed. This fixes display issues in some terminal emulators. - # - # Default: 'off' - # Values: 'on', 'off' - # Flag: --loop - image_loop="off" +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" - # Thumbnail directory - # - # Default: '~/.cache/thumbnails/neofetch' - # Values: 'dir' - thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" - # Crop mode - # - # Default: 'normal' - # Values: 'normal', 'fit', 'fill' - # Flag: --crop_mode - # - # See this wiki page to learn about the fit and fill options. - # https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F - crop_mode="normal" +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" - # Crop offset - # Note: Only affects 'normal' crop mode. - # - # Default: 'center' - # Values: 'northwest', 'north', 'northeast', 'west', 'center' - # 'east', 'southwest', 'south', 'southeast' - # Flag: --crop_offset - crop_offset="center" +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" - # Image size - # The image is half the terminal width by default. - # - # Default: 'auto' - # Values: 'auto', '00px', '00%', 'none' - # Flags: --image_size - # --size - image_size="auto" +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" - # Gap between image and text - # - # Default: '3' - # Values: 'num', '-num' - # Flag: --gap - gap=3 +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 - # Image offsets - # Only works with the w3m backend. - # - # Default: '0' - # Values: 'px' - # Flags: --xoffset - # --yoffset - yoffset=0 - xoffset=0 +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 - # Image background color - # Only works with the w3m backend. - # - # Default: '' - # Values: 'color', 'blue' - # Flag: --bg_color - background_color= +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= #+end_src ***** Misc Options #+begin_src conf :tangle .config/neofetch/config.conf - # Stdout mode - # Turn off all colors and disables image backend (ASCII/Image). - # Useful for piping into another command. - # Default: 'off' - # Values: 'on', 'off' - stdout="off" +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" #+end_src ** Shell *** Bash #+begin_src shell :tangle .bashrc - # ~/.bashrc: executed by bash(1) for non-login shells. - # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) - # for examples +# ~/.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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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)" +# 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 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 +# 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 +# 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 [ -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 [ "$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" - ;; - ,*) ;; +# 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 +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' +# 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 + 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' +# 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' +# 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$//'\'')"' +# 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. +# 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 +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 +# 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 - # ALIASES - alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' +# ALIASES +alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' - # ENVIRONMENT VARIABLES - export EDITOR="emacs" - export TERM=xterm-256color - export QT_STYLE_OVERRIDE=kvantum - export XDG_CONFIG_HOME=$HOME/.config +# ENVIRONMENT VARIABLES +export EDITOR="emacs" +export TERM=xterm-256color +export QT_STYLE_OVERRIDE=kvantum +export XDG_CONFIG_HOME=$HOME/.config - # Greeting - clear - pokemon-colorscripts -r - echo "bash shell" +# Greeting +clear +pokemon-colorscripts -r +echo "bash shell" #+end_src *** Zsh #+begin_src shell :tangle .zshrc - # If you come from bash you might have to change your $PATH. - # export PATH=$HOME/bin:/usr/local/bin:$PATH +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH - # Set $PATH if ~/.local/bin exist - if [ -d "$HOME/.local/bin" ]; then - export PATH=$HOME/.local/bin:$PATH - fi +# Set $PATH if ~/.local/bin exist +if [ -d "$HOME/.local/bin" ]; then + export PATH=$HOME/.local/bin:$PATH +fi - eval "$(starship init zsh)" - function set_win_title(){ - echo -ne "\033]0; $USER@$HOST:${PWD/$HOME/~} \007" - } - precmd_functions+=(set_win_title) +eval "$(starship init zsh)" +function set_win_title(){ + echo -ne "\033]0; $USER@$HOST:${PWD/$HOME/~} \007" +} +precmd_functions+=(set_win_title) - ## Plugins section: Enable fish style features - # Use syntax highlighting - source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +## Plugins section: Enable fish style features +# Use syntax highlighting +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh - # Use autosuggestion - source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +# Use autosuggestion +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh - # Use history substring search - source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh +# Use history substring search +source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh - # Use fzf - source /usr/share/fzf/key-bindings.zsh - source /usr/share/fzf/completion.zsh +# Use fzf +source /usr/share/fzf/key-bindings.zsh +source /usr/share/fzf/completion.zsh - # Arch Linux command-not-found support, you must have package pkgfile installed - # https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook - [[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh +# Arch Linux command-not-found support, you must have package pkgfile installed +# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook +[[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh - ## Options section - setopt correct # Auto correct mistakes - setopt extendedglob # Extended globbing. Allows using regular expressions with * - setopt nocaseglob # Case insensitive globbing - setopt rcexpandparam # Array expension with parameters - setopt nocheckjobs # Don't warn about running processes when exiting - setopt numericglobsort # Sort filenames numerically when it makes sense - setopt nobeep # No beep - setopt appendhistory # Immediately append history instead of overwriting - setopt histignorealldups # If a new command is a duplicate, remove the older one - setopt autocd # if only directory path is entered, cd there. - setopt auto_pushd - setopt pushd_ignore_dups - setopt pushdminus +## Options section +setopt correct # Auto correct mistakes +setopt extendedglob # Extended globbing. Allows using regular expressions with * +setopt nocaseglob # Case insensitive globbing +setopt rcexpandparam # Array expension with parameters +setopt nocheckjobs # Don't warn about running processes when exiting +setopt numericglobsort # Sort filenames numerically when it makes sense +setopt nobeep # No beep +setopt appendhistory # Immediately append history instead of overwriting +setopt histignorealldups # If a new command is a duplicate, remove the older one +setopt autocd # if only directory path is entered, cd there. +setopt auto_pushd +setopt pushd_ignore_dups +setopt pushdminus - # Completion. - autoload -Uz compinit - compinit - zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion - zstyle ':completion:*' rehash true # automatically find new executables in path - zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc) - zstyle ':completion:*' completer _expand _complete _ignored _approximate - zstyle ':completion:*' menu select=2 - zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' - zstyle ':completion:*:descriptions' format '%U%F{cyan}%d%f%u' +# Completion. +autoload -Uz compinit +compinit +zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion +zstyle ':completion:*' rehash true # automatically find new executables in path +zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc) +zstyle ':completion:*' completer _expand _complete _ignored _approximate +zstyle ':completion:*' menu select=2 +zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' +zstyle ':completion:*:descriptions' format '%U%F{cyan}%d%f%u' - # Speed up completions - zstyle ':completion:*' accept-exact '*(N)' - zstyle ':completion:*' use-cache on - zstyle ':completion:*' cache-path ~/.cache/zcache +# Speed up completions +zstyle ':completion:*' accept-exact '*(N)' +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path ~/.cache/zcache - # automatically load bash completion functions - autoload -U +X bashcompinit && bashcompinit +# automatically load bash completion functions +autoload -U +X bashcompinit && bashcompinit - HISTFILE=~/.zhistory - HISTSIZE=50000 - SAVEHIST=10000 +HISTFILE=~/.zhistory +HISTSIZE=50000 +SAVEHIST=10000 - ## Keys - # Use emacs key bindings - bindkey -e +## Keys +# Use emacs key bindings +bindkey -e - # [PageUp] - Up a line of history - if [[ -n "${terminfo[kpp]}" ]]; then - bindkey -M emacs "${terminfo[kpp]}" up-line-or-history - bindkey -M viins "${terminfo[kpp]}" up-line-or-history - bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history - fi - # [PageDown] - Down a line of history - if [[ -n "${terminfo[knp]}" ]]; then - bindkey -M emacs "${terminfo[knp]}" down-line-or-history - bindkey -M viins "${terminfo[knp]}" down-line-or-history - bindkey -M vicmd "${terminfo[knp]}" down-line-or-history - fi +# [PageUp] - Up a line of history +if [[ -n "${terminfo[kpp]}" ]]; then + bindkey -M emacs "${terminfo[kpp]}" up-line-or-history + bindkey -M viins "${terminfo[kpp]}" up-line-or-history + bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history +fi +# [PageDown] - Down a line of history +if [[ -n "${terminfo[knp]}" ]]; then + bindkey -M emacs "${terminfo[knp]}" down-line-or-history + bindkey -M viins "${terminfo[knp]}" down-line-or-history + bindkey -M vicmd "${terminfo[knp]}" down-line-or-history +fi - # Start typing + [Up-Arrow] - fuzzy find history forward - if [[ -n "${terminfo[kcuu1]}" ]]; then - autoload -U up-line-or-beginning-search - zle -N up-line-or-beginning-search +# Start typing + [Up-Arrow] - fuzzy find history forward +if [[ -n "${terminfo[kcuu1]}" ]]; then + autoload -U up-line-or-beginning-search + zle -N up-line-or-beginning-search - bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search - bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search - bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search - fi - # Start typing + [Down-Arrow] - fuzzy find history backward - if [[ -n "${terminfo[kcud1]}" ]]; then - autoload -U down-line-or-beginning-search - zle -N down-line-or-beginning-search + bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search + bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search + bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search +fi +# Start typing + [Down-Arrow] - fuzzy find history backward +if [[ -n "${terminfo[kcud1]}" ]]; then + autoload -U down-line-or-beginning-search + zle -N down-line-or-beginning-search - bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search - bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search - bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search - fi + bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search + bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search + bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search +fi - # [Home] - Go to beginning of line - if [[ -n "${terminfo[khome]}" ]]; then - bindkey -M emacs "${terminfo[khome]}" beginning-of-line - bindkey -M viins "${terminfo[khome]}" beginning-of-line - bindkey -M vicmd "${terminfo[khome]}" beginning-of-line - fi - # [End] - Go to end of line - if [[ -n "${terminfo[kend]}" ]]; then - bindkey -M emacs "${terminfo[kend]}" end-of-line - bindkey -M viins "${terminfo[kend]}" end-of-line - bindkey -M vicmd "${terminfo[kend]}" end-of-line - fi +# [Home] - Go to beginning of line +if [[ -n "${terminfo[khome]}" ]]; then + bindkey -M emacs "${terminfo[khome]}" beginning-of-line + bindkey -M viins "${terminfo[khome]}" beginning-of-line + bindkey -M vicmd "${terminfo[khome]}" beginning-of-line +fi +# [End] - Go to end of line +if [[ -n "${terminfo[kend]}" ]]; then + bindkey -M emacs "${terminfo[kend]}" end-of-line + bindkey -M viins "${terminfo[kend]}" end-of-line + bindkey -M vicmd "${terminfo[kend]}" end-of-line +fi - # [Shift-Tab] - move through the completion menu backwards - if [[ -n "${terminfo[kcbt]}" ]]; then - bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete - bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete - bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete - fi +# [Shift-Tab] - move through the completion menu backwards +if [[ -n "${terminfo[kcbt]}" ]]; then + bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete + bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete + bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete +fi - # [Backspace] - delete backward - bindkey -M emacs '^?' backward-delete-char - bindkey -M viins '^?' backward-delete-char - bindkey -M vicmd '^?' backward-delete-char - # [Delete] - delete forward - if [[ -n "${terminfo[kdch1]}" ]]; then - bindkey -M emacs "${terminfo[kdch1]}" delete-char - bindkey -M viins "${terminfo[kdch1]}" delete-char - bindkey -M vicmd "${terminfo[kdch1]}" delete-char - else - bindkey -M emacs "^[[3~" delete-char - bindkey -M viins "^[[3~" delete-char - bindkey -M vicmd "^[[3~" delete-char +# [Backspace] - delete backward +bindkey -M emacs '^?' backward-delete-char +bindkey -M viins '^?' backward-delete-char +bindkey -M vicmd '^?' backward-delete-char +# [Delete] - delete forward +if [[ -n "${terminfo[kdch1]}" ]]; then + bindkey -M emacs "${terminfo[kdch1]}" delete-char + bindkey -M viins "${terminfo[kdch1]}" delete-char + bindkey -M vicmd "${terminfo[kdch1]}" delete-char +else + bindkey -M emacs "^[[3~" delete-char + bindkey -M viins "^[[3~" delete-char + bindkey -M vicmd "^[[3~" delete-char - bindkey -M emacs "^[3;5~" delete-char - bindkey -M viins "^[3;5~" delete-char - bindkey -M vicmd "^[3;5~" delete-char - fi + bindkey -M emacs "^[3;5~" delete-char + bindkey -M viins "^[3;5~" delete-char + bindkey -M vicmd "^[3;5~" delete-char +fi - # Common use aliases - alias aup="pamac upgrade --aur" - alias grubup="sudo update-grub" - alias fixpacman="sudo rm /var/lib/pacman/db.lck" - alias tarnow='tar -acf ' - alias untar='tar -zxvf ' - alias wget='wget -c ' - alias psmem='ps auxf | sort -nr -k 4' - alias psmem10='ps auxf | sort -nr -k 4 | head -10' - alias ..='cd ..' - alias ...='cd ../..' - alias ....='cd ../../..' - alias .....='cd ../../../..' - alias ......='cd ../../../../..' - 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' - alias hw='hwinfo --short' # Hardware Info - alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages +# Common use aliases +alias aup="pamac upgrade --aur" +alias grubup="sudo update-grub" +alias fixpacman="sudo rm /var/lib/pacman/db.lck" +alias tarnow='tar -acf ' +alias untar='tar -zxvf ' +alias wget='wget -c ' +alias psmem='ps auxf | sort -nr -k 4' +alias psmem10='ps auxf | sort -nr -k 4 | head -10' +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' +alias .....='cd ../../../..' +alias ......='cd ../../../../..' +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' +alias hw='hwinfo --short' # Hardware Info +alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages - # Get fastest mirrors - alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" - alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" - alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" - alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" +# Get fastest mirrors +alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" +alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" +alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" +alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" - # Help people new to Arch - alias apt='man pacman' - alias apt-get='man pacman' - alias please='sudo' - alias tb='nc termbin.com 9999' +# Help people new to Arch +alias apt='man pacman' +alias apt-get='man pacman' +alias please='sudo' +alias tb='nc termbin.com 9999' - # Replace yay with paru if installed - [ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru' +# Replace yay with paru if installed +[ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru' - # Set your countries like --country France --country Germany -- or more. - alias upd='sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist && sudo pacman -Syu && sudo updatedb' +# Set your countries like --country France --country Germany -- or more. +alias upd='sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist && sudo pacman -Syu && sudo updatedb' - # Greeting - clear - pokemon-colorscripts -r - echo "zsh shell" +# Greeting +clear +pokemon-colorscripts -r +echo "zsh shell" #+end_src *** Fish @@ -4176,125 +4176,125 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc **** Greeting #+begin_src fish :tangle .config/fish/config.fish - function fish_greeting - clear - pokemon-colorscripts -r - echo "¸.·´¯`·.´¯`·.¸¸.·´¯`·.¸><(((º>" - end +function fish_greeting + clear + pokemon-colorscripts -r + echo "¸.·´¯`·.´¯`·.¸¸.·´¯`·.¸><(((º>" +end #+end_src **** Variables #+begin_src fish :tangle .config/fish/config.fish - set -U fish_user_paths $fish_user_paths $HOME/.local/bin/ +set -U fish_user_paths $fish_user_paths $HOME/.local/bin/ #+end_src **** Aliases #+begin_src fish :tangle .config/fish/config.fish - # pacman and paru - alias pacsyu='sudo pacman -Syyu' # update only standard pkgs - alias parusua='paru -Sua --noconfirm' # update only AUR pkgs - alias parusyu='paru -Syu --noconfirm' # update standard pkgs and AUR pkgs - alias unlock='sudo rm /var/lib/pacman/db.lck' # remove pacman lock - alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # remove orphaned packages +# pacman and paru +alias pacsyu='sudo pacman -Syyu' # update only standard pkgs +alias parusua='paru -Sua --noconfirm' # update only AUR pkgs +alias parusyu='paru -Syu --noconfirm' # update standard pkgs and AUR pkgs +alias unlock='sudo rm /var/lib/pacman/db.lck' # remove pacman lock +alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # remove orphaned packages - # get fastest mirrors - alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" - alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" - alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" - alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" +# get fastest mirrors +alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" +alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" +alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" +alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" - # Colorize grep output (good for log files) - alias grep='grep --color=auto' - alias egrep='egrep --color=auto' - alias fgrep='fgrep --color=auto' +# Colorize grep output (good for log files) +alias grep='grep --color=auto' +alias egrep='egrep --color=auto' +alias fgrep='fgrep --color=auto' - # confirm before overwriting something - alias cp="cp -i" - alias mv='mv -i' - alias rm='rm -i' +# confirm before overwriting something +alias cp="cp -i" +alias mv='mv -i' +alias rm='rm -i' - # gpg encryption - # verify signature for isos - alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" - # receive the key of a developer - alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" +# gpg encryption +# verify signature for isos +alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" +# receive the key of a developer +alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" - # bare git repo alias for dotfiles - alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" +# bare git repo alias for dotfiles +alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" #+end_src **** TTY #+begin_src fish :tangle .config/fish/config.fish - if [ "$TERM" = "linux" ] - then - printf %b '\e[40m' '\e[8]' # set default background to color 0 'dracula-bg' - printf %b '\e[37m' '\e[8]' # set default foreground to color 7 'dracula-fg' - printf %b '\e]P0282a36' # redefine 'black' as 'dracula-bg' - printf %b '\e]P86272a4' # redefine 'bright-black' as 'dracula-comment' - printf %b '\e]P1ff5555' # redefine 'red' as 'dracula-red' - printf %b '\e]P9ff7777' # redefine 'bright-red' as '#ff7777' - printf %b '\e]P250fa7b' # redefine 'green' as 'dracula-green' - printf %b '\e]PA70fa9b' # redefine 'bright-green' as '#70fa9b' - printf %b '\e]P3f1fa8c' # redefine 'brown' as 'dracula-yellow' - printf %b '\e]PBffb86c' # redefine 'bright-brown' as 'dracula-orange' - printf %b '\e]P4bd93f9' # redefine 'blue' as 'dracula-purple' - printf %b '\e]PCcfa9ff' # redefine 'bright-blue' as '#cfa9ff' - printf %b '\e]P5ff79c6' # redefine 'magenta' as 'dracula-pink' - printf %b '\e]PDff88e8' # redefine 'bright-magenta' as '#ff88e8' - printf %b '\e]P68be9fd' # redefine 'cyan' as 'dracula-cyan' - printf %b '\e]PE97e2ff' # redefine 'bright-cyan' as '#97e2ff' - printf %b '\e]P7f8f8f2' # redefine 'white' as 'dracula-fg' - printf %b '\e]PFffffff' # redefine 'bright-white' as '#ffffff' - clear - end +if [ "$TERM" = "linux" ] + then + printf %b '\e[40m' '\e[8]' # set default background to color 0 'dracula-bg' + printf %b '\e[37m' '\e[8]' # set default foreground to color 7 'dracula-fg' + printf %b '\e]P0282a36' # redefine 'black' as 'dracula-bg' + printf %b '\e]P86272a4' # redefine 'bright-black' as 'dracula-comment' + printf %b '\e]P1ff5555' # redefine 'red' as 'dracula-red' + printf %b '\e]P9ff7777' # redefine 'bright-red' as '#ff7777' + printf %b '\e]P250fa7b' # redefine 'green' as 'dracula-green' + printf %b '\e]PA70fa9b' # redefine 'bright-green' as '#70fa9b' + printf %b '\e]P3f1fa8c' # redefine 'brown' as 'dracula-yellow' + printf %b '\e]PBffb86c' # redefine 'bright-brown' as 'dracula-orange' + printf %b '\e]P4bd93f9' # redefine 'blue' as 'dracula-purple' + printf %b '\e]PCcfa9ff' # redefine 'bright-blue' as '#cfa9ff' + printf %b '\e]P5ff79c6' # redefine 'magenta' as 'dracula-pink' + printf %b '\e]PDff88e8' # redefine 'bright-magenta' as '#ff88e8' + printf %b '\e]P68be9fd' # redefine 'cyan' as 'dracula-cyan' + printf %b '\e]PE97e2ff' # redefine 'bright-cyan' as '#97e2ff' + printf %b '\e]P7f8f8f2' # redefine 'white' as 'dracula-fg' + printf %b '\e]PFffffff' # redefine 'bright-white' as '#ffffff' + clear +end #+end_src **** Prompt #+begin_src fish :tangle .config/fish/config.fish - # Starship Prompt - starship init fish | source +# Starship Prompt +starship init fish | source #+end_src **** Dracula Theme #+begin_src fish :tangle .config/fish/conf.d/dracula.fish - # Dracula Color Palette - set -l foreground f8f8f2 - set -l selection 44475a - set -l comment 6272a4 - set -l red ff5555 - set -l orange ffb86c - set -l yellow f1fa8c - set -l green 50fa7b - set -l purple bd93f9 - set -l cyan 8be9fd - set -l pink ff79c6 +# Dracula Color Palette +set -l foreground f8f8f2 +set -l selection 44475a +set -l comment 6272a4 +set -l red ff5555 +set -l orange ffb86c +set -l yellow f1fa8c +set -l green 50fa7b +set -l purple bd93f9 +set -l cyan 8be9fd +set -l pink ff79c6 - # Syntax Highlighting Colors - set -g fish_color_normal $foreground - set -g fish_color_command $cyan - set -g fish_color_keyword $pink - set -g fish_color_quote $yellow - set -g fish_color_redirection $foreground - set -g fish_color_end $orange - set -g fish_color_error $red - set -g fish_color_param $purple - set -g fish_color_comment $comment - set -g fish_color_selection --background=$selection - set -g fish_color_search_match --background=$selection - set -g fish_color_operator $green - set -g fish_color_escape $pink - set -g fish_color_autosuggestion $comment +# Syntax Highlighting Colors +set -g fish_color_normal $foreground +set -g fish_color_command $cyan +set -g fish_color_keyword $pink +set -g fish_color_quote $yellow +set -g fish_color_redirection $foreground +set -g fish_color_end $orange +set -g fish_color_error $red +set -g fish_color_param $purple +set -g fish_color_comment $comment +set -g fish_color_selection --background=$selection +set -g fish_color_search_match --background=$selection +set -g fish_color_operator $green +set -g fish_color_escape $pink +set -g fish_color_autosuggestion $comment - # Completion Pager Colors - set -g fish_pager_color_progress $comment - set -g fish_pager_color_prefix $cyan - set -g fish_pager_color_completion $foreground - set -g fish_pager_color_description $comment +# Completion Pager Colors +set -g fish_pager_color_progress $comment +set -g fish_pager_color_prefix $cyan +set -g fish_pager_color_completion $foreground +set -g fish_pager_color_description $comment #+end_src ** Terminal @@ -4303,1463 +4303,1463 @@ See [[https://github.com/phillipberndt/autorandr#hook-scripts][autorandr hook sc **** Fonts #+begin_src conf :tangle .config/kitty/kitty.conf - #: Fonts {{{ +#: Fonts {{{ - #: kitty has very powerful font management. You can configure - #: individual font faces and even specify special fonts for particular - #: characters. +#: kitty has very powerful font management. You can configure +#: individual font faces and even specify special fonts for particular +#: characters. - font_family Fira Code Regular Nerd Font Complete - bold_font Fira Code Bold Nerd Font Complete - italic_font Fira Code Regular Nerd Font Complete - bold_italic_font Fira Code Bold Nerd Font Complete +font_family Fira Code Regular Nerd Font Complete +bold_font Fira Code Bold Nerd Font Complete +italic_font Fira Code Regular Nerd Font Complete +bold_italic_font Fira Code Bold Nerd Font Complete - #: You can specify different fonts for the bold/italic/bold-italic - #: variants. To get a full list of supported fonts use the `kitty - #: list-fonts` command. By default they are derived automatically, by - #: the OSes font system. Setting them manually is useful for font - #: families that have many weight variants like Book, Medium, Thick, - #: etc. For example:: +#: You can specify different fonts for the bold/italic/bold-italic +#: variants. To get a full list of supported fonts use the `kitty +#: list-fonts` command. By default they are derived automatically, by +#: the OSes font system. Setting them manually is useful for font +#: families that have many weight variants like Book, Medium, Thick, +#: etc. For example:: - #: font_family Operator Mono Book - #: bold_font Operator Mono Medium - #: italic_font Operator Mono Book Italic - #: bold_italic_font Operator Mono Medium Italic +#: font_family Operator Mono Book +#: bold_font Operator Mono Medium +#: italic_font Operator Mono Book Italic +#: bold_italic_font Operator Mono Medium Italic - font_size 12.0 +font_size 12.0 - #: Font size (in pts) +#: Font size (in pts) - force_ltr no +force_ltr no - #: kitty does not support BIDI (bidirectional text), however, for RTL - #: scripts, words are automatically displayed in RTL. That is to say, - #: in an RTL script, the words "HELLO WORLD" display in kitty as - #: "WORLD HELLO", and if you try to select a substring of an RTL- - #: shaped string, you will get the character that would be there had - #: the the string been LTR. For example, assuming the Hebrew word - #: ירושלים, selecting the character that on the screen appears to be ם - #: actually writes into the selection buffer the character י. +#: kitty does not support BIDI (bidirectional text), however, for RTL +#: scripts, words are automatically displayed in RTL. That is to say, +#: in an RTL script, the words "HELLO WORLD" display in kitty as +#: "WORLD HELLO", and if you try to select a substring of an RTL- +#: shaped string, you will get the character that would be there had +#: the the string been LTR. For example, assuming the Hebrew word +#: ירושלים, selecting the character that on the screen appears to be ם +#: actually writes into the selection buffer the character י. - #: kitty's default behavior is useful in conjunction with a filter to - #: reverse the word order, however, if you wish to manipulate RTL - #: glyphs, it can be very challenging to work with, so this option is - #: provided to turn it off. Furthermore, this option can be used with - #: the command line program GNU FriBidi - #: to get BIDI - #: support, because it will force kitty to always treat the text as - #: LTR, which FriBidi expects for terminals. +#: kitty's default behavior is useful in conjunction with a filter to +#: reverse the word order, however, if you wish to manipulate RTL +#: glyphs, it can be very challenging to work with, so this option is +#: provided to turn it off. Furthermore, this option can be used with +#: the command line program GNU FriBidi +#: to get BIDI +#: support, because it will force kitty to always treat the text as +#: LTR, which FriBidi expects for terminals. - adjust_line_height 0 - adjust_column_width 0 +adjust_line_height 0 +adjust_column_width 0 - #: Change the size of each character cell kitty renders. You can use - #: either numbers, which are interpreted as pixels or percentages - #: (number followed by %), which are interpreted as percentages of the - #: unmodified values. You can use negative pixels or percentages less - #: than 100% to reduce sizes (but this might cause rendering - #: artifacts). +#: Change the size of each character cell kitty renders. You can use +#: either numbers, which are interpreted as pixels or percentages +#: (number followed by %), which are interpreted as percentages of the +#: unmodified values. You can use negative pixels or percentages less +#: than 100% to reduce sizes (but this might cause rendering +#: artifacts). - # symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols +# symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols - #: Map the specified unicode codepoints to a particular font. Useful - #: if you need special rendering for some symbols, such as for - #: Powerline. Avoids the need for patched fonts. Each unicode code - #: point is specified in the form U+. You - #: can specify multiple code points, separated by commas and ranges - #: separated by hyphens. symbol_map itself can be specified multiple - #: times. Syntax is:: +#: Map the specified unicode codepoints to a particular font. Useful +#: if you need special rendering for some symbols, such as for +#: Powerline. Avoids the need for patched fonts. Each unicode code +#: point is specified in the form U+. You +#: can specify multiple code points, separated by commas and ranges +#: separated by hyphens. symbol_map itself can be specified multiple +#: times. Syntax is:: - #: symbol_map codepoints Font Family Name +#: symbol_map codepoints Font Family Name - disable_ligatures never +disable_ligatures never - #: Choose how you want to handle multi-character ligatures. The - #: default is to always render them. You can tell kitty to not render - #: them when the cursor is over them by using cursor to make editing - #: easier, or have kitty never render them at all by using always, if - #: you don't like them. The ligature strategy can be set per-window - #: either using the kitty remote control facility or by defining - #: shortcuts for it in kitty.conf, for example:: +#: Choose how you want to handle multi-character ligatures. The +#: default is to always render them. You can tell kitty to not render +#: them when the cursor is over them by using cursor to make editing +#: easier, or have kitty never render them at all by using always, if +#: you don't like them. The ligature strategy can be set per-window +#: either using the kitty remote control facility or by defining +#: shortcuts for it in kitty.conf, for example:: - #: map alt+1 disable_ligatures_in active always - #: map alt+2 disable_ligatures_in all never - #: map alt+3 disable_ligatures_in tab cursor +#: map alt+1 disable_ligatures_in active always +#: map alt+2 disable_ligatures_in all never +#: map alt+3 disable_ligatures_in tab cursor - #: Note that this refers to programming ligatures, typically - #: implemented using the calt OpenType feature. For disabling general - #: ligatures, use the font_features setting. +#: Note that this refers to programming ligatures, typically +#: implemented using the calt OpenType feature. For disabling general +#: ligatures, use the font_features setting. - font_features none +font_features none - #: Choose exactly which OpenType features to enable or disable. This - #: is useful as some fonts might have features worthwhile in a - #: terminal. For example, Fira Code Retina includes a discretionary - #: feature, zero, which in that font changes the appearance of the - #: zero (0), to make it more easily distinguishable from Ø. Fira Code - #: Retina also includes other discretionary features known as - #: Stylistic Sets which have the tags ss01 through ss20. +#: Choose exactly which OpenType features to enable or disable. This +#: is useful as some fonts might have features worthwhile in a +#: terminal. For example, Fira Code Retina includes a discretionary +#: feature, zero, which in that font changes the appearance of the +#: zero (0), to make it more easily distinguishable from Ø. Fira Code +#: Retina also includes other discretionary features known as +#: Stylistic Sets which have the tags ss01 through ss20. - #: Note that this code is indexed by PostScript name, and not the font - #: family. This allows you to define very precise feature settings; - #: e.g. you can disable a feature in the italic font but not in the - #: regular font. +#: Note that this code is indexed by PostScript name, and not the font +#: family. This allows you to define very precise feature settings; +#: e.g. you can disable a feature in the italic font but not in the +#: regular font. - #: On Linux, these are read from the FontConfig database first and - #: then this, setting is applied, so they can be configured in a - #: single, central place. +#: On Linux, these are read from the FontConfig database first and +#: then this, setting is applied, so they can be configured in a +#: single, central place. - #: To get the PostScript name for a font, use kitty + list-fonts - #: --psnames: +#: To get the PostScript name for a font, use kitty + list-fonts +#: --psnames: - #: .. code-block:: sh +#: .. code-block:: sh - #: $ kitty + list-fonts --psnames | grep Fira - #: Fira Code - #: Fira Code Bold (FiraCode-Bold) - #: Fira Code Light (FiraCode-Light) - #: Fira Code Medium (FiraCode-Medium) - #: Fira Code Regular (FiraCode-Regular) - #: Fira Code Retina (FiraCode-Retina) +#: $ kitty + list-fonts --psnames | grep Fira +#: Fira Code +#: Fira Code Bold (FiraCode-Bold) +#: Fira Code Light (FiraCode-Light) +#: Fira Code Medium (FiraCode-Medium) +#: Fira Code Regular (FiraCode-Regular) +#: Fira Code Retina (FiraCode-Retina) - #: The part in brackets is the PostScript name. +#: The part in brackets is the PostScript name. - #: Enable alternate zero and oldstyle numerals:: +#: Enable alternate zero and oldstyle numerals:: - #: font_features FiraCode-Retina +zero +onum +#: font_features FiraCode-Retina +zero +onum - #: Enable only alternate zero:: +#: Enable only alternate zero:: - #: font_features FiraCode-Retina +zero +#: font_features FiraCode-Retina +zero - #: Disable the normal ligatures, but keep the calt feature which (in - #: this font) breaks up monotony:: +#: Disable the normal ligatures, but keep the calt feature which (in +#: this font) breaks up monotony:: - #: font_features TT2020StyleB-Regular -liga +calt +#: font_features TT2020StyleB-Regular -liga +calt - #: In conjunction with force_ltr, you may want to disable Arabic - #: shaping entirely, and only look at their isolated forms if they - #: show up in a document. You can do this with e.g.:: +#: In conjunction with force_ltr, you may want to disable Arabic +#: shaping entirely, and only look at their isolated forms if they +#: show up in a document. You can do this with e.g.:: - #: font_features UnifontMedium +isol -medi -fina -init +#: font_features UnifontMedium +isol -medi -fina -init - box_drawing_scale 0.001, 1, 1.5, 2 +box_drawing_scale 0.001, 1, 1.5, 2 - #: Change the sizes of the lines used for the box drawing unicode - #: characters These values are in pts. They will be scaled by the - #: monitor DPI to arrive at a pixel value. There must be four values - #: corresponding to thin, normal, thick, and very thick lines. +#: Change the sizes of the lines used for the box drawing unicode +#: characters These values are in pts. They will be scaled by the +#: monitor DPI to arrive at a pixel value. There must be four values +#: corresponding to thin, normal, thick, and very thick lines. - #: }}} +#: }}} #+end_src **** Cursor Customization #+begin_src conf :tangle .config/kitty/kitty.conf - #: Cursor customization {{{ +#: Cursor customization {{{ - ; cursor #cccccc +; cursor #cccccc - #: Default cursor color +#: Default cursor color - ; cursor_text_color #111111 +; cursor_text_color #111111 - #: Choose the color of text under the cursor. If you want it rendered - #: with the background color of the cell underneath instead, use the - #: special keyword: background +#: Choose the color of text under the cursor. If you want it rendered +#: with the background color of the cell underneath instead, use the +#: special keyword: background - cursor_shape beam +cursor_shape beam - #: The cursor shape can be one of (block, beam, underline) +#: The cursor shape can be one of (block, beam, underline) - cursor_beam_thickness 1.5 +cursor_beam_thickness 1.5 - #: Defines the thickness of the beam cursor (in pts) +#: Defines the thickness of the beam cursor (in pts) - cursor_underline_thickness 2.0 +cursor_underline_thickness 2.0 - #: Defines the thickness of the underline cursor (in pts) +#: Defines the thickness of the underline cursor (in pts) - cursor_blink_interval -1 +cursor_blink_interval -1 - #: The interval (in seconds) at which to blink the cursor. Set to zero - #: to disable blinking. Negative values mean use system default. Note - #: that numbers smaller than repaint_delay will be limited to - #: repaint_delay. +#: The interval (in seconds) at which to blink the cursor. Set to zero +#: to disable blinking. Negative values mean use system default. Note +#: that numbers smaller than repaint_delay will be limited to +#: repaint_delay. - cursor_stop_blinking_after 15.0 +cursor_stop_blinking_after 15.0 - #: Stop blinking cursor after the specified number of seconds of - #: keyboard inactivity. Set to zero to never stop blinking. +#: Stop blinking cursor after the specified number of seconds of +#: keyboard inactivity. Set to zero to never stop blinking. - #: }}} +#: }}} #+end_src **** Scrollback #+begin_src conf :tangle .config/kitty/kitty.conf - #: Scrollback {{{ +#: Scrollback {{{ - scrollback_lines 2000 +scrollback_lines 2000 - #: Number of lines of history to keep in memory for scrolling back. - #: Memory is allocated on demand. Negative numbers are (effectively) - #: infinite scrollback. Note that using very large scrollback is not - #: recommended as it can slow down performance of the terminal and - #: also use large amounts of RAM. Instead, consider using - #: scrollback_pager_history_size. +#: Number of lines of history to keep in memory for scrolling back. +#: Memory is allocated on demand. Negative numbers are (effectively) +#: infinite scrollback. Note that using very large scrollback is not +#: recommended as it can slow down performance of the terminal and +#: also use large amounts of RAM. Instead, consider using +#: scrollback_pager_history_size. - scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER +scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - #: Program with which to view scrollback in a new window. The - #: scrollback buffer is passed as STDIN to this program. If you change - #: it, make sure the program you use can handle ANSI escape sequences - #: for colors and text formatting. INPUT_LINE_NUMBER in the command - #: line above will be replaced by an integer representing which line - #: should be at the top of the screen. Similarly CURSOR_LINE and - #: CURSOR_COLUMN will be replaced by the current cursor position. +#: Program with which to view scrollback in a new window. The +#: scrollback buffer is passed as STDIN to this program. If you change +#: it, make sure the program you use can handle ANSI escape sequences +#: for colors and text formatting. INPUT_LINE_NUMBER in the command +#: line above will be replaced by an integer representing which line +#: should be at the top of the screen. Similarly CURSOR_LINE and +#: CURSOR_COLUMN will be replaced by the current cursor position. - scrollback_pager_history_size 0 +scrollback_pager_history_size 0 - #: Separate scrollback history size, used only for browsing the - #: scrollback buffer (in MB). This separate buffer is not available - #: for interactive scrolling but will be piped to the pager program - #: when viewing scrollback buffer in a separate window. The current - #: implementation stores the data in UTF-8, so approximatively 10000 - #: lines per megabyte at 100 chars per line, for pure ASCII text, - #: unformatted text. A value of zero or less disables this feature. - #: The maximum allowed size is 4GB. +#: Separate scrollback history size, used only for browsing the +#: scrollback buffer (in MB). This separate buffer is not available +#: for interactive scrolling but will be piped to the pager program +#: when viewing scrollback buffer in a separate window. The current +#: implementation stores the data in UTF-8, so approximatively 10000 +#: lines per megabyte at 100 chars per line, for pure ASCII text, +#: unformatted text. A value of zero or less disables this feature. +#: The maximum allowed size is 4GB. - wheel_scroll_multiplier 5.0 +wheel_scroll_multiplier 5.0 - #: Modify the amount scrolled by the mouse wheel. Note this is only - #: used for low precision scrolling devices, not for high precision - #: scrolling on platforms such as macOS and Wayland. Use negative - #: numbers to change scroll direction. +#: Modify the amount scrolled by the mouse wheel. Note this is only +#: used for low precision scrolling devices, not for high precision +#: scrolling on platforms such as macOS and Wayland. Use negative +#: numbers to change scroll direction. - touch_scroll_multiplier 1.0 +touch_scroll_multiplier 1.0 - #: Modify the amount scrolled by a touchpad. Note this is only used - #: for high precision scrolling devices on platforms such as macOS and - #: Wayland. Use negative numbers to change scroll direction. +#: Modify the amount scrolled by a touchpad. Note this is only used +#: for high precision scrolling devices on platforms such as macOS and +#: Wayland. Use negative numbers to change scroll direction. - #: }}} +#: }}} #+end_src **** Mouse #+begin_src conf :tangle .config/kitty/kitty.conf - #: Mouse {{{ +#: Mouse {{{ - mouse_hide_wait 3.0 +mouse_hide_wait 3.0 - #: Hide mouse cursor after the specified number of seconds of the - #: mouse not being used. Set to zero to disable mouse cursor hiding. - #: Set to a negative value to hide the mouse cursor immediately when - #: typing text. Disabled by default on macOS as getting it to work - #: robustly with the ever-changing sea of bugs that is Cocoa is too - #: much effort. +#: Hide mouse cursor after the specified number of seconds of the +#: mouse not being used. Set to zero to disable mouse cursor hiding. +#: Set to a negative value to hide the mouse cursor immediately when +#: typing text. Disabled by default on macOS as getting it to work +#: robustly with the ever-changing sea of bugs that is Cocoa is too +#: much effort. - ; url_color #0087bd - url_style curly +; url_color #0087bd +url_style curly - #: The color and style for highlighting URLs on mouse-over. url_style - #: can be one of: none, single, double, curly +#: The color and style for highlighting URLs on mouse-over. url_style +#: can be one of: none, single, double, curly - open_url_modifiers kitty_mod +open_url_modifiers kitty_mod - #: The modifier keys to press when clicking with the mouse on URLs to - #: open the URL +#: The modifier keys to press when clicking with the mouse on URLs to +#: open the URL - open_url_with default +open_url_with default - #: The program with which to open URLs that are clicked on. The - #: special value default means to use the operating system's default - #: URL handler. +#: The program with which to open URLs that are clicked on. The +#: special value default means to use the operating system's default +#: URL handler. - url_prefixes http https file ftp +url_prefixes http https file ftp - #: The set of URL prefixes to look for when detecting a URL under the - #: mouse cursor. +#: The set of URL prefixes to look for when detecting a URL under the +#: mouse cursor. - detect_urls yes +detect_urls yes - #: Detect URLs under the mouse. Detected URLs are highlighted with an - #: underline and the mouse cursor becomes a hand over them. Even if - #: this option is disabled, URLs are still clickable. +#: Detect URLs under the mouse. Detected URLs are highlighted with an +#: underline and the mouse cursor becomes a hand over them. Even if +#: this option is disabled, URLs are still clickable. - copy_on_select no +copy_on_select no - #: Copy to clipboard or a private buffer on select. With this set to - #: clipboard, simply selecting text with the mouse will cause the text - #: to be copied to clipboard. Useful on platforms such as macOS that - #: do not have the concept of primary selections. You can instead - #: specify a name such as a1 to copy to a private kitty buffer - #: instead. Map a shortcut with the paste_from_buffer action to paste - #: from this private buffer. For example:: +#: Copy to clipboard or a private buffer on select. With this set to +#: clipboard, simply selecting text with the mouse will cause the text +#: to be copied to clipboard. Useful on platforms such as macOS that +#: do not have the concept of primary selections. You can instead +#: specify a name such as a1 to copy to a private kitty buffer +#: instead. Map a shortcut with the paste_from_buffer action to paste +#: from this private buffer. For example:: - #: map cmd+shift+v paste_from_buffer a1 +#: map cmd+shift+v paste_from_buffer a1 - #: Note that copying to the clipboard is a security risk, as all - #: programs, including websites open in your browser can read the - #: contents of the system clipboard. +#: Note that copying to the clipboard is a security risk, as all +#: programs, including websites open in your browser can read the +#: contents of the system clipboard. - strip_trailing_spaces never +strip_trailing_spaces never - #: Remove spaces at the end of lines when copying to clipboard. A - #: value of smart will do it when using normal selections, but not - #: rectangle selections. always will always do it. +#: Remove spaces at the end of lines when copying to clipboard. A +#: value of smart will do it when using normal selections, but not +#: rectangle selections. always will always do it. - rectangle_select_modifiers ctrl+alt +rectangle_select_modifiers ctrl+alt - #: The modifiers to use rectangular selection (i.e. to select text in - #: a rectangular block with the mouse) +#: The modifiers to use rectangular selection (i.e. to select text in +#: a rectangular block with the mouse) - terminal_select_modifiers shift +terminal_select_modifiers shift - #: The modifiers to override mouse selection even when a terminal - #: application has grabbed the mouse +#: The modifiers to override mouse selection even when a terminal +#: application has grabbed the mouse - select_by_word_characters @-./_~?&=%+# +select_by_word_characters @-./_~?&=%+# - #: Characters considered part of a word when double clicking. In - #: addition to these characters any character that is marked as an - #: alphanumeric character in the unicode database will be matched. +#: Characters considered part of a word when double clicking. In +#: addition to these characters any character that is marked as an +#: alphanumeric character in the unicode database will be matched. - click_interval -1.0 +click_interval -1.0 - #: The interval between successive clicks to detect double/triple - #: clicks (in seconds). Negative numbers will use the system default - #: instead, if available, or fallback to 0.5. +#: The interval between successive clicks to detect double/triple +#: clicks (in seconds). Negative numbers will use the system default +#: instead, if available, or fallback to 0.5. - focus_follows_mouse no +focus_follows_mouse no - #: Set the active window to the window under the mouse when moving the - #: mouse around +#: Set the active window to the window under the mouse when moving the +#: mouse around - pointer_shape_when_grabbed arrow +pointer_shape_when_grabbed arrow - #: The shape of the mouse pointer when the program running in the - #: terminal grabs the mouse. Valid values are: arrow, beam and hand +#: The shape of the mouse pointer when the program running in the +#: terminal grabs the mouse. Valid values are: arrow, beam and hand - default_pointer_shape beam +default_pointer_shape beam - #: The default shape of the mouse pointer. Valid values are: arrow, - #: beam and hand +#: The default shape of the mouse pointer. Valid values are: arrow, +#: beam and hand - pointer_shape_when_dragging beam +pointer_shape_when_dragging beam - #: The default shape of the mouse pointer when dragging across text. - #: Valid values are: arrow, beam and hand +#: The default shape of the mouse pointer when dragging across text. +#: Valid values are: arrow, beam and hand - #: }}} +#: }}} #+end_src **** Performance Tuning #+begin_src conf :tangle .config/kitty/kitty.conf - #: Performance tuning {{{ +#: Performance tuning {{{ - repaint_delay 10 +repaint_delay 10 - #: Delay (in milliseconds) between screen updates. Decreasing it, - #: increases frames-per-second (FPS) at the cost of more CPU usage. - #: The default value yields ~100 FPS which is more than sufficient for - #: most uses. Note that to actually achieve 100 FPS you have to either - #: set sync_to_monitor to no or use a monitor with a high refresh - #: rate. Also, to minimize latency when there is pending input to be - #: processed, repaint_delay is ignored. +#: Delay (in milliseconds) between screen updates. Decreasing it, +#: increases frames-per-second (FPS) at the cost of more CPU usage. +#: The default value yields ~100 FPS which is more than sufficient for +#: most uses. Note that to actually achieve 100 FPS you have to either +#: set sync_to_monitor to no or use a monitor with a high refresh +#: rate. Also, to minimize latency when there is pending input to be +#: processed, repaint_delay is ignored. - input_delay 3 +input_delay 3 - #: Delay (in milliseconds) before input from the program running in - #: the terminal is processed. Note that decreasing it will increase - #: responsiveness, but also increase CPU usage and might cause flicker - #: in full screen programs that redraw the entire screen on each loop, - #: because kitty is so fast that partial screen updates will be drawn. +#: Delay (in milliseconds) before input from the program running in +#: the terminal is processed. Note that decreasing it will increase +#: responsiveness, but also increase CPU usage and might cause flicker +#: in full screen programs that redraw the entire screen on each loop, +#: because kitty is so fast that partial screen updates will be drawn. - sync_to_monitor no +sync_to_monitor no - #: Sync screen updates to the refresh rate of the monitor. This - #: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing) - #: when scrolling. However, it limits the rendering speed to the - #: refresh rate of your monitor. With a very high speed mouse/high - #: keyboard repeat rate, you may notice some slight input latency. If - #: so, set this to no. +#: Sync screen updates to the refresh rate of the monitor. This +#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing) +#: when scrolling. However, it limits the rendering speed to the +#: refresh rate of your monitor. With a very high speed mouse/high +#: keyboard repeat rate, you may notice some slight input latency. If +#: so, set this to no. - #: }}} +#: }}} #+end_src **** Terminal Bell #+begin_src conf :tangle .config/kitty/kitty.conf - #: Terminal bell {{{ +#: Terminal bell {{{ - enable_audio_bell yes +enable_audio_bell yes - #: Enable/disable the audio bell. Useful in environments that require - #: silence. +#: Enable/disable the audio bell. Useful in environments that require +#: silence. - visual_bell_duration 0.0 +visual_bell_duration 0.0 - #: Visual bell duration. Flash the screen when a bell occurs for the - #: specified number of seconds. Set to zero to disable. +#: Visual bell duration. Flash the screen when a bell occurs for the +#: specified number of seconds. Set to zero to disable. - window_alert_on_bell yes +window_alert_on_bell yes - #: Request window attention on bell. Makes the dock icon bounce on - #: macOS or the taskbar flash on linux. +#: Request window attention on bell. Makes the dock icon bounce on +#: macOS or the taskbar flash on linux. - bell_on_tab yes +bell_on_tab yes - #: Show a bell symbol on the tab if a bell occurs in one of the - #: windows in the tab and the window is not the currently focused - #: window +#: Show a bell symbol on the tab if a bell occurs in one of the +#: windows in the tab and the window is not the currently focused +#: window - command_on_bell none +command_on_bell none - #: Program to run when a bell occurs. +#: Program to run when a bell occurs. - #: }}} +#: }}} #+end_src **** Window Layout #+begin_src conf :tangle .config/kitty/kitty.conf - #: Window layout {{{ +#: Window layout {{{ - remember_window_size yes - initial_window_width 640 - initial_window_height 400 +remember_window_size yes +initial_window_width 640 +initial_window_height 400 - #: If enabled, the window size will be remembered so that new - #: instances of kitty will have the same size as the previous - #: instance. If disabled, the window will initially have size - #: configured by initial_window_width/height, in pixels. You can use a - #: suffix of "c" on the width/height values to have them interpreted - #: as number of cells instead of pixels. +#: If enabled, the window size will be remembered so that new +#: instances of kitty will have the same size as the previous +#: instance. If disabled, the window will initially have size +#: configured by initial_window_width/height, in pixels. You can use a +#: suffix of "c" on the width/height values to have them interpreted +#: as number of cells instead of pixels. - enabled_layouts * +enabled_layouts * - #: The enabled window layouts. A comma separated list of layout names. - #: The special value all means all layouts. The first listed layout - #: will be used as the startup layout. Default configuration is all - #: layouts in alphabetical order. For a list of available layouts, see - #: the https://sw.kovidgoyal.net/kitty/index.html#layouts. +#: The enabled window layouts. A comma separated list of layout names. +#: The special value all means all layouts. The first listed layout +#: will be used as the startup layout. Default configuration is all +#: layouts in alphabetical order. For a list of available layouts, see +#: the https://sw.kovidgoyal.net/kitty/index.html#layouts. - window_resize_step_cells 2 - window_resize_step_lines 2 +window_resize_step_cells 2 +window_resize_step_lines 2 - #: The step size (in units of cell width/cell height) to use when - #: resizing windows. The cells value is used for horizontal resizing - #: and the lines value for vertical resizing. +#: The step size (in units of cell width/cell height) to use when +#: resizing windows. The cells value is used for horizontal resizing +#: and the lines value for vertical resizing. - window_border_width 0.5 +window_border_width 0.5 - #: The width of window borders. Can be either in pixels (px) or pts - #: (pt). Values in pts will be rounded to the nearest number of pixels - #: based on screen resolution. If not specified the unit is assumed to - #: be pts. Note that borders are displayed only when more than one - #: window is visible. They are meant to separate multiple windows. +#: The width of window borders. Can be either in pixels (px) or pts +#: (pt). Values in pts will be rounded to the nearest number of pixels +#: based on screen resolution. If not specified the unit is assumed to +#: be pts. Note that borders are displayed only when more than one +#: window is visible. They are meant to separate multiple windows. - draw_minimal_borders yes +draw_minimal_borders yes - #: Draw only the minimum borders needed. This means that only the - #: minimum needed borders for inactive windows are drawn. That is only - #: the borders that separate the inactive window from a neighbor. Note - #: that setting a non-zero window margin overrides this and causes all - #: borders to be drawn. +#: Draw only the minimum borders needed. This means that only the +#: minimum needed borders for inactive windows are drawn. That is only +#: the borders that separate the inactive window from a neighbor. Note +#: that setting a non-zero window margin overrides this and causes all +#: borders to be drawn. - window_margin_width 0 +window_margin_width 0 - #: The window margin (in pts) (blank area outside the border). A - #: single value sets all four sides. Two values set the vertical and - #: horizontal sides. Three values set top, horizontal and bottom. Four - #: values set top, right, bottom and left. +#: The window margin (in pts) (blank area outside the border). A +#: single value sets all four sides. Two values set the vertical and +#: horizontal sides. Three values set top, horizontal and bottom. Four +#: values set top, right, bottom and left. - single_window_margin_width -1 +single_window_margin_width -1 - #: The window margin (in pts) to use when only a single window is - #: visible. Negative values will cause the value of - #: window_margin_width to be used instead. A single value sets all - #: four sides. Two values set the vertical and horizontal sides. Three - #: values set top, horizontal and bottom. Four values set top, right, - #: bottom and left. +#: The window margin (in pts) to use when only a single window is +#: visible. Negative values will cause the value of +#: window_margin_width to be used instead. A single value sets all +#: four sides. Two values set the vertical and horizontal sides. Three +#: values set top, horizontal and bottom. Four values set top, right, +#: bottom and left. - window_padding_width 5 +window_padding_width 5 - #: The window padding (in pts) (blank area between the text and the - #: window border). A single value sets all four sides. Two values set - #: the vertical and horizontal sides. Three values set top, horizontal - #: and bottom. Four values set top, right, bottom and left. +#: The window padding (in pts) (blank area between the text and the +#: window border). A single value sets all four sides. Two values set +#: the vertical and horizontal sides. Three values set top, horizontal +#: and bottom. Four values set top, right, bottom and left. - placement_strategy center +placement_strategy center - #: When the window size is not an exact multiple of the cell size, the - #: cell area of the terminal window will have some extra padding on - #: the sides. You can control how that padding is distributed with - #: this option. Using a value of center means the cell area will be - #: placed centrally. A value of top-left means the padding will be on - #: only the bottom and right edges. +#: When the window size is not an exact multiple of the cell size, the +#: cell area of the terminal window will have some extra padding on +#: the sides. You can control how that padding is distributed with +#: this option. Using a value of center means the cell area will be +#: placed centrally. A value of top-left means the padding will be on +#: only the bottom and right edges. - active_border_color #00ff00 +active_border_color #00ff00 - #: The color for the border of the active window. Set this to none to - #: not draw borders around the active window. +#: The color for the border of the active window. Set this to none to +#: not draw borders around the active window. - inactive_border_color #cccccc +inactive_border_color #cccccc - #: The color for the border of inactive windows +#: The color for the border of inactive windows - bell_border_color #ff5a00 +bell_border_color #ff5a00 - #: The color for the border of inactive windows in which a bell has - #: occurred +#: The color for the border of inactive windows in which a bell has +#: occurred - inactive_text_alpha 1.0 +inactive_text_alpha 1.0 - #: Fade the text in inactive windows by the specified amount (a number - #: between zero and one, with zero being fully faded). +#: Fade the text in inactive windows by the specified amount (a number +#: between zero and one, with zero being fully faded). - hide_window_decorations no +hide_window_decorations no - #: Hide the window decorations (title-bar and window borders) with - #: yes. On macOS, titlebar-only can be used to only hide the titlebar. - #: Whether this works and exactly what effect it has depends on the - #: window manager/operating system. +#: Hide the window decorations (title-bar and window borders) with +#: yes. On macOS, titlebar-only can be used to only hide the titlebar. +#: Whether this works and exactly what effect it has depends on the +#: window manager/operating system. - resize_debounce_time 0.1 +resize_debounce_time 0.1 - #: The time (in seconds) to wait before redrawing the screen when a - #: resize event is received. On platforms such as macOS, where the - #: operating system sends events corresponding to the start and end of - #: a resize, this number is ignored. +#: The time (in seconds) to wait before redrawing the screen when a +#: resize event is received. On platforms such as macOS, where the +#: operating system sends events corresponding to the start and end of +#: a resize, this number is ignored. - resize_draw_strategy static +resize_draw_strategy static - #: Choose how kitty draws a window while a resize is in progress. A - #: value of static means draw the current window contents, mostly - #: unchanged. A value of scale means draw the current window contents - #: scaled. A value of blank means draw a blank window. A value of size - #: means show the window size in cells. +#: Choose how kitty draws a window while a resize is in progress. A +#: value of static means draw the current window contents, mostly +#: unchanged. A value of scale means draw the current window contents +#: scaled. A value of blank means draw a blank window. A value of size +#: means show the window size in cells. - resize_in_steps no +resize_in_steps no - #: Resize the OS window in steps as large as the cells, instead of - #: with the usual pixel accuracy. Combined with an - #: initial_window_width and initial_window_height in number of cells, - #: this option can be used to keep the margins as small as possible - #: when resizing the OS window. Note that this does not currently work - #: on Wayland. +#: Resize the OS window in steps as large as the cells, instead of +#: with the usual pixel accuracy. Combined with an +#: initial_window_width and initial_window_height in number of cells, +#: this option can be used to keep the margins as small as possible +#: when resizing the OS window. Note that this does not currently work +#: on Wayland. - confirm_os_window_close 0 +confirm_os_window_close 0 - #: Ask for confirmation when closing an OS window or a tab that has at - #: least this number of kitty windows in it. A value of zero disables - #: confirmation. This confirmation also applies to requests to quit - #: the entire application (all OS windows, via the quit action). +#: Ask for confirmation when closing an OS window or a tab that has at +#: least this number of kitty windows in it. A value of zero disables +#: confirmation. This confirmation also applies to requests to quit +#: the entire application (all OS windows, via the quit action). - #: }}} +#: }}} #+end_src **** Tab Bar #+begin_src conf :tangle .config/kitty/kitty.conf - #: Tab bar {{{ +#: Tab bar {{{ - tab_bar_edge top +tab_bar_edge top - #: Which edge to show the tab bar on, top or bottom +#: Which edge to show the tab bar on, top or bottom - tab_bar_margin_width 0.0 +tab_bar_margin_width 0.0 - #: The margin to the left and right of the tab bar (in pts) +#: The margin to the left and right of the tab bar (in pts) - tab_bar_style powerline +tab_bar_style powerline - #: The tab bar style, can be one of: fade, separator, powerline, or - #: hidden. In the fade style, each tab's edges fade into the - #: background color, in the separator style, tabs are separated by a - #: configurable separator, and the powerline shows the tabs as a - #: continuous line. If you use the hidden style, you might want to - #: create a mapping for the select_tab action which presents you with - #: a list of tabs and allows for easy switching to a tab. +#: The tab bar style, can be one of: fade, separator, powerline, or +#: hidden. In the fade style, each tab's edges fade into the +#: background color, in the separator style, tabs are separated by a +#: configurable separator, and the powerline shows the tabs as a +#: continuous line. If you use the hidden style, you might want to +#: create a mapping for the select_tab action which presents you with +#: a list of tabs and allows for easy switching to a tab. - tab_bar_min_tabs 2 +tab_bar_min_tabs 2 - #: The minimum number of tabs that must exist before the tab bar is - #: shown +#: The minimum number of tabs that must exist before the tab bar is +#: shown - tab_switch_strategy previous +tab_switch_strategy previous - #: The algorithm to use when switching to a tab when the current tab - #: is closed. The default of previous will switch to the last used - #: tab. A value of left will switch to the tab to the left of the - #: closed tab. A value of right will switch to the tab to the right of - #: the closed tab. A value of last will switch to the right-most tab. +#: The algorithm to use when switching to a tab when the current tab +#: is closed. The default of previous will switch to the last used +#: tab. A value of left will switch to the tab to the left of the +#: closed tab. A value of right will switch to the tab to the right of +#: the closed tab. A value of last will switch to the right-most tab. - tab_fade 0.25 0.5 0.75 1 +tab_fade 0.25 0.5 0.75 1 - #: Control how each tab fades into the background when using fade for - #: the tab_bar_style. Each number is an alpha (between zero and one) - #: that controls how much the corresponding cell fades into the - #: background, with zero being no fade and one being full fade. You - #: can change the number of cells used by adding/removing entries to - #: this list. +#: Control how each tab fades into the background when using fade for +#: the tab_bar_style. Each number is an alpha (between zero and one) +#: that controls how much the corresponding cell fades into the +#: background, with zero being no fade and one being full fade. You +#: can change the number of cells used by adding/removing entries to +#: this list. - tab_separator " ┇" +tab_separator " ┇" - #: The separator between tabs in the tab bar when using separator as - #: the tab_bar_style. +#: The separator between tabs in the tab bar when using separator as +#: the tab_bar_style. - tab_activity_symbol none +tab_activity_symbol none - #: Some text or a unicode symbol to show on the tab if a window in the - #: tab that does not have focus has some activity. +#: Some text or a unicode symbol to show on the tab if a window in the +#: tab that does not have focus has some activity. - tab_title_template "{index}: {title}" +tab_title_template "{index}: {title}" - #: A template to render the tab title. The default just renders the - #: title. If you wish to include the tab-index as well, use something - #: like: {index}: {title}. Useful if you have shortcuts mapped for - #: goto_tab N. In addition you can use {layout_name} for the current - #: layout name and {num_windows} for the number of windows in the tab. - #: Note that formatting is done by Python's string formatting - #: machinery, so you can use, for instance, {layout_name[:2].upper()} - #: to show only the first two letters of the layout name, upper-cased. - #: If you want to style the text, you can use styling directives, for - #: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green - #: bg{fmt.bg.normal}. Similarly, for bold and italic: - #: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}. +#: A template to render the tab title. The default just renders the +#: title. If you wish to include the tab-index as well, use something +#: like: {index}: {title}. Useful if you have shortcuts mapped for +#: goto_tab N. In addition you can use {layout_name} for the current +#: layout name and {num_windows} for the number of windows in the tab. +#: Note that formatting is done by Python's string formatting +#: machinery, so you can use, for instance, {layout_name[:2].upper()} +#: to show only the first two letters of the layout name, upper-cased. +#: If you want to style the text, you can use styling directives, for +#: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green +#: bg{fmt.bg.normal}. Similarly, for bold and italic: +#: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}. - active_tab_title_template none +active_tab_title_template none - #: Template to use for active tabs, if not specified falls back to - #: tab_title_template. +#: Template to use for active tabs, if not specified falls back to +#: tab_title_template. - ; active_tab_foreground #000 - ; active_tab_background #eee - active_tab_font_style bold-italic - ; inactive_tab_foreground #444 - ; inactive_tab_background #999 - inactive_tab_font_style normal +; active_tab_foreground #000 +; active_tab_background #eee +active_tab_font_style bold-italic +; inactive_tab_foreground #444 +; inactive_tab_background #999 +inactive_tab_font_style normal - #: Tab bar colors and styles +#: Tab bar colors and styles - tab_bar_background none +tab_bar_background none - #: Background color for the tab bar. Defaults to using the terminal - #: background color. +#: Background color for the tab bar. Defaults to using the terminal +#: background color. - #: }}} +#: }}} #+end_src **** Color Scheme #+begin_src conf :tangle .config/kitty/kitty.conf - #: Color scheme {{{ +#: Color scheme {{{ - ; foreground #dddddd - ; background #000000 +; foreground #dddddd +; background #000000 - #: The foreground and background colors +#: The foreground and background colors - background_opacity 0.8 +background_opacity 0.8 - #: The opacity of the background. A number between 0 and 1, where 1 is - #: opaque and 0 is fully transparent. This will only work if - #: supported by the OS (for instance, when using a compositor under - #: X11). Note that it only sets the background color's opacity in - #: cells that have the same background color as the default terminal - #: background. This is so that things like the status bar in vim, - #: powerline prompts, etc. still look good. But it means that if you - #: use a color theme with a background color in your editor, it will - #: not be rendered as transparent. Instead you should change the - #: default background color in your kitty config and not use a - #: background color in the editor color scheme. Or use the escape - #: codes to set the terminals default colors in a shell script to - #: launch your editor. Be aware that using a value less than 1.0 is a - #: (possibly significant) performance hit. If you want to dynamically - #: change transparency of windows set dynamic_background_opacity to - #: yes (this is off by default as it has a performance cost) +#: The opacity of the background. A number between 0 and 1, where 1 is +#: opaque and 0 is fully transparent. This will only work if +#: supported by the OS (for instance, when using a compositor under +#: X11). Note that it only sets the background color's opacity in +#: cells that have the same background color as the default terminal +#: background. This is so that things like the status bar in vim, +#: powerline prompts, etc. still look good. But it means that if you +#: use a color theme with a background color in your editor, it will +#: not be rendered as transparent. Instead you should change the +#: default background color in your kitty config and not use a +#: background color in the editor color scheme. Or use the escape +#: codes to set the terminals default colors in a shell script to +#: launch your editor. Be aware that using a value less than 1.0 is a +#: (possibly significant) performance hit. If you want to dynamically +#: change transparency of windows set dynamic_background_opacity to +#: yes (this is off by default as it has a performance cost) - background_image none +background_image none - #: Path to a background image. Must be in PNG format. +#: Path to a background image. Must be in PNG format. - background_image_layout tiled +background_image_layout tiled - #: Whether to tile or scale the background image. +#: Whether to tile or scale the background image. - background_image_linear no +background_image_linear no - #: When background image is scaled, whether linear interpolation - #: should be used. +#: When background image is scaled, whether linear interpolation +#: should be used. - dynamic_background_opacity no +dynamic_background_opacity no - #: Allow changing of the background_opacity dynamically, using either - #: keyboard shortcuts (increase_background_opacity and - #: decrease_background_opacity) or the remote control facility. +#: Allow changing of the background_opacity dynamically, using either +#: keyboard shortcuts (increase_background_opacity and +#: decrease_background_opacity) or the remote control facility. - background_tint 0.0 +background_tint 0.0 - #: How much to tint the background image by the background color. The - #: tint is applied only under the text area, not margin/borders. Makes - #: it easier to read the text. Tinting is done using the current - #: background color for each window. This setting applies only if - #: background_opacity is set and transparent windows are supported or - #: background_image is set. +#: How much to tint the background image by the background color. The +#: tint is applied only under the text area, not margin/borders. Makes +#: it easier to read the text. Tinting is done using the current +#: background color for each window. This setting applies only if +#: background_opacity is set and transparent windows are supported or +#: background_image is set. - dim_opacity 0.8 +dim_opacity 0.8 - #: How much to dim text that has the DIM/FAINT attribute set. One - #: means no dimming and zero means fully dimmed (i.e. invisible). +#: How much to dim text that has the DIM/FAINT attribute set. One +#: means no dimming and zero means fully dimmed (i.e. invisible). - ; selection_foreground #000000 +; selection_foreground #000000 - #: The foreground for text selected with the mouse. A value of none - #: means to leave the color unchanged. +#: The foreground for text selected with the mouse. A value of none +#: means to leave the color unchanged. - ; selection_background #fffacd +; selection_background #fffacd - #: The background for text selected with the mouse. +#: The background for text selected with the mouse. - #: The 16 terminal colors. There are 8 basic colors, each color has a - #: dull and bright version. You can also set the remaining colors from - #: the 256 color table as color16 to color255. +#: The 16 terminal colors. There are 8 basic colors, each color has a +#: dull and bright version. You can also set the remaining colors from +#: the 256 color table as color16 to color255. - ; color0 #000000 - ; color8 #767676 +; color0 #000000 +; color8 #767676 - #: black +#: black - ; color1 #cc0403 - ; color9 #f2201f +; color1 #cc0403 +; color9 #f2201f - #: red +#: red - ; color2 #19cb00 - ; color10 #23fd00 +; color2 #19cb00 +; color10 #23fd00 - #: green +#: green - ; color3 #cecb00 - ; color11 #fffd00 +; color3 #cecb00 +; color11 #fffd00 - #: yellow +#: yellow - ; color4 #0d73cc - ; color12 #1a8fff +; color4 #0d73cc +; color12 #1a8fff - #: blue +#: blue - ; color5 #cb1ed1 - ; color13 #fd28ff +; color5 #cb1ed1 +; color13 #fd28ff - #: magenta +#: magenta - ; color6 #0dcdcd - ; color14 #14ffff +; color6 #0dcdcd +; color14 #14ffff - #: cyan +#: cyan - ; color7 #dddddd - ; color15 #ffffff +; color7 #dddddd +; color15 #ffffff - #: white +#: white - ; mark1_foreground black +; mark1_foreground black - #: Color for marks of type 1 +#: Color for marks of type 1 - ; mark1_background #98d3cb +; mark1_background #98d3cb - #: Color for marks of type 1 (light steel blue) +#: Color for marks of type 1 (light steel blue) - mark2_foreground black +mark2_foreground black - #: Color for marks of type 2 +#: Color for marks of type 2 - mark2_background #f2dcd3 +mark2_background #f2dcd3 - #: Color for marks of type 1 (beige) +#: Color for marks of type 1 (beige) - mark3_foreground black +mark3_foreground black - #: Color for marks of type 3 +#: Color for marks of type 3 - mark3_background #f274bc +mark3_background #f274bc - #: Color for marks of type 1 (violet) +#: Color for marks of type 1 (violet) - #: }}} +#: }}} #+end_src **** Advanced #+begin_src conf :tangle .config/kitty/kitty.conf - #: Advanced {{{ +#: Advanced {{{ - shell fish +shell fish - #: The shell program to execute. The default value of . means to use - #: whatever shell is set as the default shell for the current user. - #: Note that on macOS if you change this, you might need to add - #: --login to ensure that the shell starts in interactive mode and - #: reads its startup rc files. +#: The shell program to execute. The default value of . means to use +#: whatever shell is set as the default shell for the current user. +#: Note that on macOS if you change this, you might need to add +#: --login to ensure that the shell starts in interactive mode and +#: reads its startup rc files. - editor . +editor . - #: The console editor to use when editing the kitty config file or - #: similar tasks. A value of . means to use the environment variables - #: VISUAL and EDITOR in that order. Note that this environment - #: variable has to be set not just in your shell startup scripts but - #: system-wide, otherwise kitty will not see it. +#: The console editor to use when editing the kitty config file or +#: similar tasks. A value of . means to use the environment variables +#: VISUAL and EDITOR in that order. Note that this environment +#: variable has to be set not just in your shell startup scripts but +#: system-wide, otherwise kitty will not see it. - close_on_child_death no +close_on_child_death no - #: Close the window when the child process (shell) exits. If no (the - #: default), the terminal will remain open when the child exits as - #: long as there are still processes outputting to the terminal (for - #: example disowned or backgrounded processes). If yes, the window - #: will close as soon as the child process exits. Note that setting it - #: to yes means that any background processes still using the terminal - #: can fail silently because their stdout/stderr/stdin no longer work. +#: Close the window when the child process (shell) exits. If no (the +#: default), the terminal will remain open when the child exits as +#: long as there are still processes outputting to the terminal (for +#: example disowned or backgrounded processes). If yes, the window +#: will close as soon as the child process exits. Note that setting it +#: to yes means that any background processes still using the terminal +#: can fail silently because their stdout/stderr/stdin no longer work. - allow_remote_control no +allow_remote_control no - #: Allow other programs to control kitty. If you turn this on other - #: programs can control all aspects of kitty, including sending text - #: to kitty windows, opening new windows, closing windows, reading the - #: content of windows, etc. Note that this even works over ssh - #: connections. You can chose to either allow any program running - #: within kitty to control it, with yes or only programs that connect - #: to the socket specified with the kitty --listen-on command line - #: option, if you use the value socket-only. The latter is useful if - #: you want to prevent programs running on a remote computer over ssh - #: from controlling kitty. +#: Allow other programs to control kitty. If you turn this on other +#: programs can control all aspects of kitty, including sending text +#: to kitty windows, opening new windows, closing windows, reading the +#: content of windows, etc. Note that this even works over ssh +#: connections. You can chose to either allow any program running +#: within kitty to control it, with yes or only programs that connect +#: to the socket specified with the kitty --listen-on command line +#: option, if you use the value socket-only. The latter is useful if +#: you want to prevent programs running on a remote computer over ssh +#: from controlling kitty. - listen_on none +listen_on none - #: Tell kitty to listen to the specified unix/tcp socket for remote - #: control connections. Note that this will apply to all kitty - #: instances. It can be overridden by the kitty --listen-on command - #: line flag. This option accepts only UNIX sockets, such as - #: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment - #: variables are expanded. If {kitty_pid} is present then it is - #: replaced by the PID of the kitty process, otherwise the PID of the - #: kitty process is appended to the value, with a hyphen. This option - #: is ignored unless you also set allow_remote_control to enable - #: remote control. See the help for kitty --listen-on for more - #: details. +#: Tell kitty to listen to the specified unix/tcp socket for remote +#: control connections. Note that this will apply to all kitty +#: instances. It can be overridden by the kitty --listen-on command +#: line flag. This option accepts only UNIX sockets, such as +#: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment +#: variables are expanded. If {kitty_pid} is present then it is +#: replaced by the PID of the kitty process, otherwise the PID of the +#: kitty process is appended to the value, with a hyphen. This option +#: is ignored unless you also set allow_remote_control to enable +#: remote control. See the help for kitty --listen-on for more +#: details. - # env +# env - #: Specify environment variables to set in all child processes. Note - #: that environment variables are expanded recursively, so if you - #: use:: +#: Specify environment variables to set in all child processes. Note +#: that environment variables are expanded recursively, so if you +#: use:: - #: env MYVAR1=a - #: env MYVAR2=${MYVAR1}/${HOME}/b +#: env MYVAR1=a +#: env MYVAR2=${MYVAR1}/${HOME}/b - #: The value of MYVAR2 will be a//b. +#: The value of MYVAR2 will be a//b. - update_check_interval 0 +update_check_interval 0 - #: Periodically check if an update to kitty is available. If an update - #: is found a system notification is displayed informing you of the - #: available update. The default is to check every 24 hrs, set to zero - #: to disable. +#: Periodically check if an update to kitty is available. If an update +#: is found a system notification is displayed informing you of the +#: available update. The default is to check every 24 hrs, set to zero +#: to disable. - startup_session none +startup_session none - #: Path to a session file to use for all kitty instances. Can be - #: overridden by using the kitty --session command line option for - #: individual instances. See - #: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty - #: documentation for details. Note that relative paths are interpreted - #: with respect to the kitty config directory. Environment variables - #: in the path are expanded. +#: Path to a session file to use for all kitty instances. Can be +#: overridden by using the kitty --session command line option for +#: individual instances. See +#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty +#: documentation for details. Note that relative paths are interpreted +#: with respect to the kitty config directory. Environment variables +#: in the path are expanded. - clipboard_control write-clipboard write-primary +clipboard_control write-clipboard write-primary - #: Allow programs running in kitty to read and write from the - #: clipboard. You can control exactly which actions are allowed. The - #: set of possible actions is: write-clipboard read-clipboard write- - #: primary read-primary. You can additionally specify no-append to - #: disable kitty's protocol extension for clipboard concatenation. The - #: default is to allow writing to the clipboard and primary selection - #: with concatenation enabled. Note that enabling the read - #: functionality is a security risk as it means that any program, even - #: one running on a remote server via SSH can read your clipboard. +#: Allow programs running in kitty to read and write from the +#: clipboard. You can control exactly which actions are allowed. The +#: set of possible actions is: write-clipboard read-clipboard write- +#: primary read-primary. You can additionally specify no-append to +#: disable kitty's protocol extension for clipboard concatenation. The +#: default is to allow writing to the clipboard and primary selection +#: with concatenation enabled. Note that enabling the read +#: functionality is a security risk as it means that any program, even +#: one running on a remote server via SSH can read your clipboard. - allow_hyperlinks yes +allow_hyperlinks yes - #: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8 - #: escape sequences are ignored. Otherwise they become clickable - #: links, that you can click by holding down ctrl+shift and clicking - #: with the mouse. The special value of ``ask`` means that kitty will - #: ask before opening the link. +#: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8 +#: escape sequences are ignored. Otherwise they become clickable +#: links, that you can click by holding down ctrl+shift and clicking +#: with the mouse. The special value of ``ask`` means that kitty will +#: ask before opening the link. - term xterm-kitty +term xterm-kitty - #: The value of the TERM environment variable to set. Changing this - #: can break many terminal programs, only change it if you know what - #: you are doing, not because you read some advice on Stack Overflow - #: to change it. The TERM variable is used by various programs to get - #: information about the capabilities and behavior of the terminal. If - #: you change it, depending on what programs you run, and how - #: different the terminal you are changing it to is, various things - #: from key-presses, to colors, to various advanced features may not - #: work. +#: The value of the TERM environment variable to set. Changing this +#: can break many terminal programs, only change it if you know what +#: you are doing, not because you read some advice on Stack Overflow +#: to change it. The TERM variable is used by various programs to get +#: information about the capabilities and behavior of the terminal. If +#: you change it, depending on what programs you run, and how +#: different the terminal you are changing it to is, various things +#: from key-presses, to colors, to various advanced features may not +#: work. - #: }}} +#: }}} #+end_src **** OS Specific Tweaks #+begin_src conf :tangle .config/kitty/kitty.conf - #: OS specific tweaks {{{ +#: OS specific tweaks {{{ - macos_titlebar_color system +macos_titlebar_color system - #: Change the color of the kitty window's titlebar on macOS. A value - #: of system means to use the default system color, a value of - #: background means to use the background color of the currently - #: active window and finally you can use an arbitrary color, such as - #: #12af59 or red. WARNING: This option works by using a hack, as - #: there is no proper Cocoa API for it. It sets the background color - #: of the entire window and makes the titlebar transparent. As such it - #: is incompatible with background_opacity. If you want to use both, - #: you are probably better off just hiding the titlebar with - #: hide_window_decorations. +#: Change the color of the kitty window's titlebar on macOS. A value +#: of system means to use the default system color, a value of +#: background means to use the background color of the currently +#: active window and finally you can use an arbitrary color, such as +#: #12af59 or red. WARNING: This option works by using a hack, as +#: there is no proper Cocoa API for it. It sets the background color +#: of the entire window and makes the titlebar transparent. As such it +#: is incompatible with background_opacity. If you want to use both, +#: you are probably better off just hiding the titlebar with +#: hide_window_decorations. - macos_option_as_alt no +macos_option_as_alt no - #: Use the option key as an alt key. With this set to no, kitty will - #: use the macOS native Option+Key = unicode character behavior. This - #: will break any Alt+key keyboard shortcuts in your terminal - #: programs, but you can use the macOS unicode input technique. You - #: can use the values: left, right, or both to use only the left, - #: right or both Option keys as Alt, instead. +#: Use the option key as an alt key. With this set to no, kitty will +#: use the macOS native Option+Key = unicode character behavior. This +#: will break any Alt+key keyboard shortcuts in your terminal +#: programs, but you can use the macOS unicode input technique. You +#: can use the values: left, right, or both to use only the left, +#: right or both Option keys as Alt, instead. - macos_hide_from_tasks no +macos_hide_from_tasks no - #: Hide the kitty window from running tasks (Option+Tab) on macOS. +#: Hide the kitty window from running tasks (Option+Tab) on macOS. - macos_quit_when_last_window_closed no +macos_quit_when_last_window_closed no - #: Have kitty quit when all the top-level windows are closed. By - #: default, kitty will stay running, even with no open windows, as is - #: the expected behavior on macOS. +#: Have kitty quit when all the top-level windows are closed. By +#: default, kitty will stay running, even with no open windows, as is +#: the expected behavior on macOS. - macos_window_resizable yes +macos_window_resizable yes - #: Disable this if you want kitty top-level (OS) windows to not be - #: resizable on macOS. +#: Disable this if you want kitty top-level (OS) windows to not be +#: resizable on macOS. - macos_thicken_font 0 +macos_thicken_font 0 - #: Draw an extra border around the font with the given width, to - #: increase legibility at small font sizes. For example, a value of - #: 0.75 will result in rendering that looks similar to sub-pixel - #: antialiasing at common font sizes. +#: Draw an extra border around the font with the given width, to +#: increase legibility at small font sizes. For example, a value of +#: 0.75 will result in rendering that looks similar to sub-pixel +#: antialiasing at common font sizes. - macos_traditional_fullscreen no +macos_traditional_fullscreen no - #: Use the traditional full-screen transition, that is faster, but - #: less pretty. +#: Use the traditional full-screen transition, that is faster, but +#: less pretty. - macos_show_window_title_in all +macos_show_window_title_in all - #: Show or hide the window title in the macOS window or menu-bar. A - #: value of window will show the title of the currently active window - #: at the top of the macOS window. A value of menubar will show the - #: title of the currently active window in the macOS menu-bar, making - #: use of otherwise wasted space. all will show the title everywhere - #: and none hides the title in the window and the menu-bar. +#: Show or hide the window title in the macOS window or menu-bar. A +#: value of window will show the title of the currently active window +#: at the top of the macOS window. A value of menubar will show the +#: title of the currently active window in the macOS menu-bar, making +#: use of otherwise wasted space. all will show the title everywhere +#: and none hides the title in the window and the menu-bar. - macos_custom_beam_cursor no +macos_custom_beam_cursor no - #: Enable/disable custom mouse cursor for macOS that is easier to see - #: on both light and dark backgrounds. WARNING: this might make your - #: mouse cursor invisible on dual GPU machines. +#: Enable/disable custom mouse cursor for macOS that is easier to see +#: on both light and dark backgrounds. WARNING: this might make your +#: mouse cursor invisible on dual GPU machines. - linux_display_server auto +linux_display_server auto - #: Choose between Wayland and X11 backends. By default, an appropriate - #: backend based on the system state is chosen automatically. Set it - #: to x11 or wayland to force the choice. +#: Choose between Wayland and X11 backends. By default, an appropriate +#: backend based on the system state is chosen automatically. Set it +#: to x11 or wayland to force the choice. - #: }}} +#: }}} #+end_src **** Keyboard Shortcuts #+begin_src conf :tangle .config/kitty/kitty.conf - #: Keyboard shortcuts {{{ +#: Keyboard shortcuts {{{ - #: For a list of key names, see: the GLFW key macros - #: . - #: The name to use is the part after the GLFW_KEY_ prefix. For a list - #: of modifier names, see: GLFW mods - #: +#: For a list of key names, see: the GLFW key macros +#: . +#: The name to use is the part after the GLFW_KEY_ prefix. For a list +#: of modifier names, see: GLFW mods +#: - #: On Linux you can also use XKB key names to bind keys that are not - #: supported by GLFW. See XKB keys - #: for a list of key names. The name to use is the part - #: after the XKB_KEY_ prefix. Note that you can only use an XKB key - #: name for keys that are not known as GLFW keys. +#: On Linux you can also use XKB key names to bind keys that are not +#: supported by GLFW. See XKB keys +#: for a list of key names. The name to use is the part +#: after the XKB_KEY_ prefix. Note that you can only use an XKB key +#: name for keys that are not known as GLFW keys. - #: Finally, you can use raw system key codes to map keys, again only - #: for keys that are not known as GLFW keys. To see the system key - #: code for a key, start kitty with the kitty --debug-keyboard option. - #: Then kitty will output some debug text for every key event. In that - #: text look for ``native_code`` the value of that becomes the key - #: name in the shortcut. For example: +#: Finally, you can use raw system key codes to map keys, again only +#: for keys that are not known as GLFW keys. To see the system key +#: code for a key, start kitty with the kitty --debug-keyboard option. +#: Then kitty will output some debug text for every key event. In that +#: text look for ``native_code`` the value of that becomes the key +#: name in the shortcut. For example: - #: .. code-block:: none +#: .. code-block:: none - #: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a' +#: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a' - #: Here, the key name for the A key is 0x61 and you can use it with:: +#: Here, the key name for the A key is 0x61 and you can use it with:: - #: map ctrl+0x61 something +#: map ctrl+0x61 something - #: to map ctrl+a to something. +#: to map ctrl+a to something. - #: You can use the special action no_op to unmap a keyboard shortcut - #: that is assigned in the default configuration:: +#: You can use the special action no_op to unmap a keyboard shortcut +#: that is assigned in the default configuration:: - #: map kitty_mod+space no_op +#: map kitty_mod+space no_op - #: You can combine multiple actions to be triggered by a single - #: shortcut, using the syntax below:: +#: You can combine multiple actions to be triggered by a single +#: shortcut, using the syntax below:: - #: map key combine action1 action2 action3 ... +#: map key combine action1 action2 action3 ... - #: For example:: +#: For example:: - #: map kitty_mod+e combine : new_window : next_layout +#: map kitty_mod+e combine : new_window : next_layout - #: this will create a new window and switch to the next available - #: layout +#: this will create a new window and switch to the next available +#: layout - #: You can use multi-key shortcuts using the syntax shown below:: +#: You can use multi-key shortcuts using the syntax shown below:: - #: map key1>key2>key3 action +#: map key1>key2>key3 action - #: For example:: +#: For example:: - #: map ctrl+f>2 set_font_size 20 +#: map ctrl+f>2 set_font_size 20 - kitty_mod ctrl+shift +kitty_mod ctrl+shift - #: The value of kitty_mod is used as the modifier for all default - #: shortcuts, you can change it in your kitty.conf to change the - #: modifiers for all the default shortcuts. +#: The value of kitty_mod is used as the modifier for all default +#: shortcuts, you can change it in your kitty.conf to change the +#: modifiers for all the default shortcuts. - clear_all_shortcuts no +clear_all_shortcuts no - #: You can have kitty remove all shortcut definition seen up to this - #: point. Useful, for instance, to remove the default shortcuts. +#: You can have kitty remove all shortcut definition seen up to this +#: point. Useful, for instance, to remove the default shortcuts. - # kitten_alias hints hints --hints-offset=0 +# kitten_alias hints hints --hints-offset=0 - #: You can create aliases for kitten names, this allows overriding the - #: defaults for kitten options and can also be used to shorten - #: repeated mappings of the same kitten with a specific group of - #: options. For example, the above alias changes the default value of - #: kitty +kitten hints --hints-offset to zero for all mappings, - #: including the builtin ones. +#: You can create aliases for kitten names, this allows overriding the +#: defaults for kitten options and can also be used to shorten +#: repeated mappings of the same kitten with a specific group of +#: options. For example, the above alias changes the default value of +#: kitty +kitten hints --hints-offset to zero for all mappings, +#: including the builtin ones. - #: }}} +#: }}} #+end_src **** Clipboard #+begin_src conf :tangle .config/kitty/kitty.conf - #: Clipboard {{{ +#: Clipboard {{{ - map kitty_mod+c copy_to_clipboard +map kitty_mod+c copy_to_clipboard - #: There is also a copy_or_interrupt action that can be optionally - #: mapped to Ctrl+c. It will copy only if there is a selection and - #: send an interrupt otherwise. Similarly, copy_and_clear_or_interrupt - #: will copy and clear the selection or send an interrupt if there is - #: no selection. +#: There is also a copy_or_interrupt action that can be optionally +#: mapped to Ctrl+c. It will copy only if there is a selection and +#: send an interrupt otherwise. Similarly, copy_and_clear_or_interrupt +#: will copy and clear the selection or send an interrupt if there is +#: no selection. - map kitty_mod+v paste_from_clipboard - map kitty_mod+s paste_from_selection - map shift+insert paste_from_selection - map kitty_mod+o pass_selection_to_program +map kitty_mod+v paste_from_clipboard +map kitty_mod+s paste_from_selection +map shift+insert paste_from_selection +map kitty_mod+o pass_selection_to_program - #: You can also pass the contents of the current selection to any - #: program using pass_selection_to_program. By default, the system's - #: open program is used, but you can specify your own, the selection - #: will be passed as a command line argument to the program, for - #: example:: +#: You can also pass the contents of the current selection to any +#: program using pass_selection_to_program. By default, the system's +#: open program is used, but you can specify your own, the selection +#: will be passed as a command line argument to the program, for +#: example:: - #: map kitty_mod+o pass_selection_to_program firefox +#: map kitty_mod+o pass_selection_to_program firefox - #: You can pass the current selection to a terminal program running in - #: a new kitty window, by using the @selection placeholder:: +#: You can pass the current selection to a terminal program running in +#: a new kitty window, by using the @selection placeholder:: - #: map kitty_mod+y new_window less @selection +#: map kitty_mod+y new_window less @selection - #: }}} +#: }}} #+end_src **** Scrolling #+begin_src conf :tangle .config/kitty/kitty.conf - #: Scrolling {{{ +#: Scrolling {{{ - map kitty_mod+up scroll_line_up - map kitty_mod+k scroll_line_up - map kitty_mod+down scroll_line_down - map kitty_mod+j scroll_line_down - map kitty_mod+page_up scroll_page_up - map kitty_mod+page_down scroll_page_down - map kitty_mod+home scroll_home - map kitty_mod+end scroll_end - map kitty_mod+h show_scrollback +map kitty_mod+up scroll_line_up +map kitty_mod+k scroll_line_up +map kitty_mod+down scroll_line_down +map kitty_mod+j scroll_line_down +map kitty_mod+page_up scroll_page_up +map kitty_mod+page_down scroll_page_down +map kitty_mod+home scroll_home +map kitty_mod+end scroll_end +map kitty_mod+h show_scrollback - #: You can pipe the contents of the current screen + history buffer as - #: STDIN to an arbitrary program using the ``launch`` function. For - #: example, the following opens the scrollback buffer in less in an - #: overlay window:: +#: You can pipe the contents of the current screen + history buffer as +#: STDIN to an arbitrary program using the ``launch`` function. For +#: example, the following opens the scrollback buffer in less in an +#: overlay window:: - #: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R +#: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R - #: For more details on piping screen and buffer contents to external - #: programs, see launch. +#: For more details on piping screen and buffer contents to external +#: programs, see launch. - #: }}} +#: }}} #+end_src **** Window Management #+begin_src conf :tangle .config/kitty/kitty.conf - #: Window management {{{ +#: Window management {{{ - map kitty_mod+enter new_window +map kitty_mod+enter new_window - #: You can open a new window running an arbitrary program, for - #: example:: +#: You can open a new window running an arbitrary program, for +#: example:: - #: map kitty_mod+y launch mutt +#: map kitty_mod+y launch mutt - #: You can open a new window with the current working directory set to - #: the working directory of the current window using:: +#: You can open a new window with the current working directory set to +#: the working directory of the current window using:: - #: map ctrl+alt+enter launch --cwd=current +#: map ctrl+alt+enter launch --cwd=current - #: You can open a new window that is allowed to control kitty via the - #: kitty remote control facility by prefixing the command line with @. - #: Any programs running in that window will be allowed to control - #: kitty. For example:: +#: You can open a new window that is allowed to control kitty via the +#: kitty remote control facility by prefixing the command line with @. +#: Any programs running in that window will be allowed to control +#: kitty. For example:: - #: map ctrl+enter launch --allow-remote-control some_program +#: map ctrl+enter launch --allow-remote-control some_program - #: You can open a new window next to the currently active window or as - #: the first window, with:: +#: You can open a new window next to the currently active window or as +#: the first window, with:: - #: map ctrl+n launch --location=neighbor some_program - #: map ctrl+f launch --location=first some_program +#: map ctrl+n launch --location=neighbor some_program +#: map ctrl+f launch --location=first some_program - #: For more details, see launch. +#: For more details, see launch. - map kitty_mod+n new_os_window +map kitty_mod+n new_os_window - #: Works like new_window above, except that it opens a top level OS - #: kitty window. In particular you can use new_os_window_with_cwd to - #: open a window with the current working directory. +#: Works like new_window above, except that it opens a top level OS +#: kitty window. In particular you can use new_os_window_with_cwd to +#: open a window with the current working directory. - map kitty_mod+w close_window - map kitty_mod+] next_window - map kitty_mod+[ previous_window - map kitty_mod+f move_window_forward - map kitty_mod+b move_window_backward - map kitty_mod+` move_window_to_top - map kitty_mod+r start_resizing_window - map kitty_mod+1 first_window - map kitty_mod+2 second_window - map kitty_mod+3 third_window - map kitty_mod+4 fourth_window - map kitty_mod+5 fifth_window - map kitty_mod+6 sixth_window - map kitty_mod+7 seventh_window - map kitty_mod+8 eighth_window - map kitty_mod+9 ninth_window - map kitty_mod+0 tenth_window - #: }}} +map kitty_mod+w close_window +map kitty_mod+] next_window +map kitty_mod+[ previous_window +map kitty_mod+f move_window_forward +map kitty_mod+b move_window_backward +map kitty_mod+` move_window_to_top +map kitty_mod+r start_resizing_window +map kitty_mod+1 first_window +map kitty_mod+2 second_window +map kitty_mod+3 third_window +map kitty_mod+4 fourth_window +map kitty_mod+5 fifth_window +map kitty_mod+6 sixth_window +map kitty_mod+7 seventh_window +map kitty_mod+8 eighth_window +map kitty_mod+9 ninth_window +map kitty_mod+0 tenth_window +#: }}} #+end_src **** Tab Management #+begin_src conf :tangle .config/kitty/kitty.conf - #: Tab management {{{ +#: Tab management {{{ - map kitty_mod+right next_tab - map kitty_mod+left previous_tab - map kitty_mod+t new_tab - map kitty_mod+q close_tab - map kitty_mod+. move_tab_forward - map kitty_mod+, move_tab_backward - map kitty_mod+alt+t set_tab_title +map kitty_mod+right next_tab +map kitty_mod+left previous_tab +map kitty_mod+t new_tab +map kitty_mod+q close_tab +map kitty_mod+. move_tab_forward +map kitty_mod+, move_tab_backward +map kitty_mod+alt+t set_tab_title - #: You can also create shortcuts to go to specific tabs, with 1 being - #: the first tab, 2 the second tab and -1 being the previously active - #: tab, and any number larger than the last tab being the last tab:: +#: You can also create shortcuts to go to specific tabs, with 1 being +#: the first tab, 2 the second tab and -1 being the previously active +#: tab, and any number larger than the last tab being the last tab:: - #: map ctrl+alt+1 goto_tab 1 - #: map ctrl+alt+2 goto_tab 2 +#: map ctrl+alt+1 goto_tab 1 +#: map ctrl+alt+2 goto_tab 2 - #: Just as with new_window above, you can also pass the name of - #: arbitrary commands to run when using new_tab and use - #: new_tab_with_cwd. Finally, if you want the new tab to open next to - #: the current tab rather than at the end of the tabs list, use:: +#: Just as with new_window above, you can also pass the name of +#: arbitrary commands to run when using new_tab and use +#: new_tab_with_cwd. Finally, if you want the new tab to open next to +#: the current tab rather than at the end of the tabs list, use:: - #: map ctrl+t new_tab !neighbor [optional cmd to run] - #: }}} +#: map ctrl+t new_tab !neighbor [optional cmd to run] +#: }}} #+end_src **** Layout Management #+begin_src conf :tangle .config/kitty/kitty.conf - #: Layout management {{{ +#: Layout management {{{ - map kitty_mod+l next_layout +map kitty_mod+l next_layout - #: You can also create shortcuts to switch to specific layouts:: +#: You can also create shortcuts to switch to specific layouts:: - #: map ctrl+alt+t goto_layout tall - #: map ctrl+alt+s goto_layout stack +#: map ctrl+alt+t goto_layout tall +#: map ctrl+alt+s goto_layout stack - #: Similarly, to switch back to the previous layout:: +#: Similarly, to switch back to the previous layout:: - #: map ctrl+alt+p last_used_layout - #: }}} +#: map ctrl+alt+p last_used_layout +#: }}} #+end_src **** Font Sizes #+begin_src conf :tangle .config/kitty/kitty.conf - #: Font sizes {{{ +#: Font sizes {{{ - #: You can change the font size for all top-level kitty OS windows at - #: a time or only the current one. +#: You can change the font size for all top-level kitty OS windows at +#: a time or only the current one. - map kitty_mod+equal change_font_size all +2.0 - map kitty_mod+minus change_font_size all -2.0 - map kitty_mod+backspace change_font_size all 0 +map kitty_mod+equal change_font_size all +2.0 +map kitty_mod+minus change_font_size all -2.0 +map kitty_mod+backspace change_font_size all 0 - #: To setup shortcuts for specific font sizes:: +#: To setup shortcuts for specific font sizes:: - #: map kitty_mod+f6 change_font_size all 10.0 +#: map kitty_mod+f6 change_font_size all 10.0 - #: To setup shortcuts to change only the current OS window's font - #: size:: +#: To setup shortcuts to change only the current OS window's font +#: size:: - #: map kitty_mod+f6 change_font_size current 10.0 - #: }}} +#: map kitty_mod+f6 change_font_size current 10.0 +#: }}} #+end_src **** Select and Act on Visible Text #+begin_src conf :tangle .config/kitty/kitty.conf - #: Select and act on visible text {{{ +#: Select and act on visible text {{{ - #: Use the hints kitten to select text and either pass it to an - #: external program or insert it into the terminal or copy it to the - #: clipboard. +#: Use the hints kitten to select text and either pass it to an +#: external program or insert it into the terminal or copy it to the +#: clipboard. - map kitty_mod+e kitten hints +map kitty_mod+e kitten hints - #: Open a currently visible URL using the keyboard. The program used - #: to open the URL is specified in open_url_with. +#: Open a currently visible URL using the keyboard. The program used +#: to open the URL is specified in open_url_with. - map kitty_mod+p>f kitten hints --type path --program - +map kitty_mod+p>f kitten hints --type path --program - - #: Select a path/filename and insert it into the terminal. Useful, for - #: instance to run git commands on a filename output from a previous - #: git command. +#: Select a path/filename and insert it into the terminal. Useful, for +#: instance to run git commands on a filename output from a previous +#: git command. - map kitty_mod+p>shift+f kitten hints --type path +map kitty_mod+p>shift+f kitten hints --type path - #: Select a path/filename and open it with the default open program. +#: Select a path/filename and open it with the default open program. - map kitty_mod+p>l kitten hints --type line --program - +map kitty_mod+p>l kitten hints --type line --program - - #: Select a line of text and insert it into the terminal. Use for the - #: output of things like: ls -1 +#: Select a line of text and insert it into the terminal. Use for the +#: output of things like: ls -1 - map kitty_mod+p>w kitten hints --type word --program - +map kitty_mod+p>w kitten hints --type word --program - - #: Select words and insert into terminal. +#: Select words and insert into terminal. - map kitty_mod+p>h kitten hints --type hash --program - +map kitty_mod+p>h kitten hints --type hash --program - - #: Select something that looks like a hash and insert it into the - #: terminal. Useful with git, which uses sha1 hashes to identify - #: commits +#: Select something that looks like a hash and insert it into the +#: terminal. Useful with git, which uses sha1 hashes to identify +#: commits - map kitty_mod+p>n kitten hints --type linenum +map kitty_mod+p>n kitten hints --type linenum - #: Select something that looks like filename:linenum and open it in - #: vim at the specified line number. +#: Select something that looks like filename:linenum and open it in +#: vim at the specified line number. - map kitty_mod+p>y kitten hints --type hyperlink +map kitty_mod+p>y kitten hints --type hyperlink - #: Select a hyperlink (i.e. a URL that has been marked as such by the - #: terminal program, for example, by ls --hyperlink=auto). +#: Select a hyperlink (i.e. a URL that has been marked as such by the +#: terminal program, for example, by ls --hyperlink=auto). - #: The hints kitten has many more modes of operation that you can map - #: to different shortcuts. For a full description see kittens/hints. - #: }}} +#: The hints kitten has many more modes of operation that you can map +#: to different shortcuts. For a full description see kittens/hints. +#: }}} #+end_src **** Miscellaneous #+begin_src conf :tangle .config/kitty/kitty.conf - #: Miscellaneous {{{ +#: Miscellaneous {{{ - map kitty_mod+f11 toggle_fullscreen - map kitty_mod+f10 toggle_maximized - map kitty_mod+u kitten unicode_input - map kitty_mod+f2 edit_config_file - map kitty_mod+escape kitty_shell window +map kitty_mod+f11 toggle_fullscreen +map kitty_mod+f10 toggle_maximized +map kitty_mod+u kitten unicode_input +map kitty_mod+f2 edit_config_file +map kitty_mod+escape kitty_shell window - #: Open the kitty shell in a new window/tab/overlay/os_window to - #: control kitty using commands. +#: Open the kitty shell in a new window/tab/overlay/os_window to +#: control kitty using commands. - map kitty_mod+a>m set_background_opacity +0.1 - map kitty_mod+a>l set_background_opacity -0.1 - map kitty_mod+a>1 set_background_opacity 1 - map kitty_mod+a>d set_background_opacity default - map kitty_mod+delete clear_terminal reset active +map kitty_mod+a>m set_background_opacity +0.1 +map kitty_mod+a>l set_background_opacity -0.1 +map kitty_mod+a>1 set_background_opacity 1 +map kitty_mod+a>d set_background_opacity default +map kitty_mod+delete clear_terminal reset active - #: You can create shortcuts to clear/reset the terminal. For example:: +#: You can create shortcuts to clear/reset the terminal. For example:: - #: # Reset the terminal - #: map kitty_mod+f9 clear_terminal reset active - #: # Clear the terminal screen by erasing all contents - #: map kitty_mod+f10 clear_terminal clear active - #: # Clear the terminal scrollback by erasing it - #: map kitty_mod+f11 clear_terminal scrollback active - #: # Scroll the contents of the screen into the scrollback - #: map kitty_mod+f12 clear_terminal scroll active +#: # Reset the terminal +#: map kitty_mod+f9 clear_terminal reset active +#: # Clear the terminal screen by erasing all contents +#: map kitty_mod+f10 clear_terminal clear active +#: # Clear the terminal scrollback by erasing it +#: map kitty_mod+f11 clear_terminal scrollback active +#: # Scroll the contents of the screen into the scrollback +#: map kitty_mod+f12 clear_terminal scroll active - #: If you want to operate on all windows instead of just the current - #: one, use all instead of active. +#: If you want to operate on all windows instead of just the current +#: one, use all instead of active. - #: It is also possible to remap Ctrl+L to both scroll the current - #: screen contents into the scrollback buffer and clear the screen, - #: instead of just clearing the screen:: +#: It is also possible to remap Ctrl+L to both scroll the current +#: screen contents into the scrollback buffer and clear the screen, +#: instead of just clearing the screen:: - #: map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c +#: map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c - #: You can tell kitty to send arbitrary (UTF-8) encoded text to the - #: client program when pressing specified shortcut keys. For example:: +#: You can tell kitty to send arbitrary (UTF-8) encoded text to the +#: client program when pressing specified shortcut keys. For example:: - #: map ctrl+alt+a send_text all Special text +#: map ctrl+alt+a send_text all Special text - #: This will send "Special text" when you press the ctrl+alt+a key - #: combination. The text to be sent is a python string literal so you - #: can use escapes like \x1b to send control codes or \u21fb to send - #: unicode characters (or you can just input the unicode characters - #: directly as UTF-8 text). The first argument to send_text is the - #: keyboard modes in which to activate the shortcut. The possible - #: values are normal or application or kitty or a comma separated - #: combination of them. The special keyword all means all modes. The - #: modes normal and application refer to the DECCKM cursor key mode - #: for terminals, and kitty refers to the special kitty extended - #: keyboard protocol. +#: This will send "Special text" when you press the ctrl+alt+a key +#: combination. The text to be sent is a python string literal so you +#: can use escapes like \x1b to send control codes or \u21fb to send +#: unicode characters (or you can just input the unicode characters +#: directly as UTF-8 text). The first argument to send_text is the +#: keyboard modes in which to activate the shortcut. The possible +#: values are normal or application or kitty or a comma separated +#: combination of them. The special keyword all means all modes. The +#: modes normal and application refer to the DECCKM cursor key mode +#: for terminals, and kitty refers to the special kitty extended +#: keyboard protocol. - #: Another example, that outputs a word and then moves the cursor to - #: the start of the line (same as pressing the Home key):: +#: Another example, that outputs a word and then moves the cursor to +#: the start of the line (same as pressing the Home key):: - #: map ctrl+alt+a send_text normal Word\x1b[H - #: map ctrl+alt+a send_text application Word\x1bOH +#: map ctrl+alt+a send_text normal Word\x1b[H +#: map ctrl+alt+a send_text application Word\x1bOH - #: }}} +#: }}} #+end_src **** Dracula Theme #+begin_src conf :tangle .config/kitty/kitty.conf - include dracula.conf +include dracula.conf #+end_src #+begin_src conf :tangle .config/kitty/dracula.conf - # https://draculatheme.com/kitty - # - # Installation instructions: - # - # cp dracula.conf ~/.config/kitty/ - # echo "include dracula.conf" >> ~/.config/kitty/kitty.conf - # - # Then reload kitty for the config to take affect. - # Alternatively copy paste below directly into kitty.conf +# https://draculatheme.com/kitty +# +# Installation instructions: +# +# cp dracula.conf ~/.config/kitty/ +# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf +# +# Then reload kitty for the config to take affect. +# Alternatively copy paste below directly into kitty.conf - foreground #f8f8f2 - background #282a36 - selection_foreground #ffffff - selection_background #44475a +foreground #f8f8f2 +background #282a36 +selection_foreground #ffffff +selection_background #44475a - url_color #8be9fd +url_color #8be9fd - # black - color0 #21222c - color8 #6272a4 +# black +color0 #21222c +color8 #6272a4 - # red - color1 #ff5555 - color9 #ff6e6e +# red +color1 #ff5555 +color9 #ff6e6e - # green - color2 #50fa7b - color10 #69ff94 +# green +color2 #50fa7b +color10 #69ff94 - # yellow - color3 #f1fa8c - color11 #ffffa5 +# yellow +color3 #f1fa8c +color11 #ffffa5 - # blue - color4 #bd93f9 - color12 #d6acff +# blue +color4 #bd93f9 +color12 #d6acff - # magenta - color5 #ff79c6 - color13 #ff92df +# magenta +color5 #ff79c6 +color13 #ff92df - # cyan - color6 #8be9fd - color14 #a4ffff +# cyan +color6 #8be9fd +color14 #a4ffff - # white - color7 #f8f8f2 - color15 #ffffff +# white +color7 #f8f8f2 +color15 #ffffff - # Cursor colors - cursor #f8f8f2 - cursor_text_color background +# Cursor colors +cursor #f8f8f2 +cursor_text_color background - # Tab bar colors - active_tab_foreground #282a36 - active_tab_background #f8f8f2 - inactive_tab_foreground #282a36 - inactive_tab_background #6272a4 +# Tab bar colors +active_tab_foreground #282a36 +active_tab_background #f8f8f2 +inactive_tab_foreground #282a36 +inactive_tab_background #6272a4 - # Marks - mark1_foreground #282a36 - mark1_background #ff5555 +# Marks +mark1_foreground #282a36 +mark1_background #ff5555 #+end_src *** Alacritty @@ -5768,804 +5768,804 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. **** Environment Variable #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Any items in the `env` entry below will be added as - # environment variables. Some entries may override variables - # set by alacritty itself. - #env: - # TERM variable - # - # This value is used to set the `$TERM` environment variable for - # each instance of Alacritty. If it is not present, alacritty will - # check the local terminfo database and use `alacritty` if it is - # available, otherwise `xterm-256color` is used. - #TERM: alacritty +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +#env: +# TERM variable +# +# This value is used to set the `$TERM` environment variable for +# each instance of Alacritty. If it is not present, alacritty will +# check the local terminfo database and use `alacritty` if it is +# available, otherwise `xterm-256color` is used. +#TERM: alacritty #+end_src **** Window #+begin_src conf :tangle .config/alacritty/alacritty.yml - window: - # Window dimensions (changes require restart) - # - # Specified in number of columns/lines, not pixels. - # If both are `0`, this setting is ignored. - #dimensions: - # columns: 0 - # lines: 0 +window: + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. + #dimensions: + # columns: 0 + # lines: 0 - # Window position (changes require restart) - # - # Specified in number of pixels. - # If the position is not set, the window manager will handle the placement. - #position: - # x: 0 - # y: 0 + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 - # Window padding (changes require restart) - # - # Blank space added around the window in pixels. This padding is scaled - # by DPI and the specified value is always added at both opposing sides. - padding: - x: 5 - y: 5 + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + padding: + x: 5 + y: 5 - # Spread additional padding evenly around the terminal content. - #dynamic_padding: false + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false - # Window decorations - # - # Values for `decorations`: - # - full: Borders and title bar - # - none: Neither borders nor title bar - # - # Values for `decorations` (macOS only): - # - transparent: Title bar, transparent background and title bar buttons - # - buttonless: Title bar, transparent background, but no title bar buttons - #decorations: full + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background, but no title bar buttons + #decorations: full - # Startup Mode (changes require restart) - # - # Values for `startup_mode`: - # - Windowed - # - Maximized - # - Fullscreen - # - # Values for `startup_mode` (macOS only): - # - SimpleFullscreen - #startup_mode: Windowed + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed - # Window title - #title: Alacritty + # Window title + #title: Alacritty - # Window class (Linux/BSD only): - # class: - # Application instance name - # instance: Alacritty - # General application class - # general: Alacritty + # Window class (Linux/BSD only): + # class: + # Application instance name + # instance: Alacritty + # General application class + # general: Alacritty - # GTK theme variant (Linux/BSD only) - # - # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. - # Set this to `None` to use the default theme variant. - #gtk_theme_variant: None + # GTK theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. + # Set this to `None` to use the default theme variant. + #gtk_theme_variant: None #+end_src **** Scrolling #+begin_src conf :tangle .config/alacritty/alacritty.yml - #scrolling: - # Maximum number of lines in the scrollback buffer. - # Specifying '0' will disable scrolling. - #history: 10000 +#scrolling: +# Maximum number of lines in the scrollback buffer. +# Specifying '0' will disable scrolling. +#history: 10000 - # Number of lines the viewport will move for every line scrolled when - # scrollback is enabled (history > 0). - #multiplier: 3 +# Number of lines the viewport will move for every line scrolled when +# scrollback is enabled (history > 0). +#multiplier: 3 #+end_src **** Font #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Font configuration - font: - # Normal (roman) font face - normal: - # Font family - # - # Default: - # - (macOS) Menlo - # - (Linux/BSD) monospace - # - (Windows) Consolas - family: Fira Code Nerd Font +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + family: Fira Code Nerd Font - # The `style` can be specified to pick a specific face. - style: Regular + # The `style` can be specified to pick a specific face. + style: Regular - # Bold font face - bold: - # Font family - # - # If the bold family is not specified, it will fall back to the - # value specified for the normal font. - family: Fira Code Nerd Font + # Bold font face + bold: + # Font family + # + # If the bold family is not specified, it will fall back to the + # value specified for the normal font. + family: Fira Code Nerd Font - # The `style` can be specified to pick a specific face. - style: Bold + # The `style` can be specified to pick a specific face. + style: Bold - # Italic font face - #italic: - # Font family - # - # If the italic family is not specified, it will fall back to the - # value specified for the normal font. - #family: monospace + # Italic font face + #italic: + # Font family + # + # If the italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace - # The `style` can be specified to pick a specific face. - #style: Italic + # The `style` can be specified to pick a specific face. + #style: Italic - # Bold italic font face - #bold_italic: - # Font family - # - # If the bold italic family is not specified, it will fall back to the - # value specified for the normal font. - #family: monospace + # Bold italic font face + #bold_italic: + # Font family + # + # If the bold italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace - # The `style` can be specified to pick a specific face. - #style: Bold Italic + # The `style` can be specified to pick a specific face. + #style: Bold Italic - # Point size - size: 8.0 + # Point size + size: 8.0 - # Offset is the extra space around each character. `offset.y` can be thought of - # as modifying the line spacing, and `offset.x` as modifying the letter spacing. - #offset: - # x: 0 - # y: 0 + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. + #offset: + # x: 0 + # y: 0 - # Glyph offset determines the locations of the glyphs within their cells with - # the default being at the bottom. Increasing `x` moves the glyph to the right, - # increasing `y` moves the glyph upwards. - #glyph_offset: - # x: 0 - # y: 0 + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upwards. + #glyph_offset: + # x: 0 + # y: 0 - # Thin stroke font rendering (macOS only) - # - # Thin strokes are suitable for retina displays, but for non-retina screens - # it is recommended to set `use_thin_strokes` to `false` - # - # macOS >= 10.14.x: - # - # If the font quality on non-retina display looks bad then set - # `use_thin_strokes` to `true` and enable font smoothing by running the - # following command: - # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` - # - # This is a global setting and will require a log out or restart to take - # effect. - #use_thin_strokes: true + # Thin stroke font rendering (macOS only) + # + # Thin strokes are suitable for retina displays, but for non-retina screens + # it is recommended to set `use_thin_strokes` to `false` + # + # macOS >= 10.14.x: + # + # If the font quality on non-retina display looks bad then set + # `use_thin_strokes` to `true` and enable font smoothing by running the + # following command: + # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` + # + # This is a global setting and will require a log out or restart to take + # effect. + #use_thin_strokes: true #+end_src **** Colors #+begin_src conf :tangle .config/alacritty/alacritty.yml - # If `true`, bold text is drawn using the bright color variants. - #draw_bold_text_with_bright_colors: false +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: false #+end_src ***** Tomorrow Night Bright *NOT IN USE* #+begin_src conf :tangle no - colors: - # Default colors - primary: - background: '#000000' - foreground: '#eaeaea' +colors: +# Default colors + primary: + background: '#000000' + foreground: '#eaeaea' - # Bright and dim foreground colors +# Bright and dim foreground colors - # The dimmed foreground color is calculated automatically if it is not present. - # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` - # is `false`, the normal foreground color will be used. - # dim_foreground: '#9a9a9a' - # bright_foreground: '#ffffff' +# The dimmed foreground color is calculated automatically if it is not present. +# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` +# is `false`, the normal foreground color will be used. +# dim_foreground: '#9a9a9a' +# bright_foreground: '#ffffff' - # Cursor colors +# Cursor colors - # Colors which should be used to draw the terminal cursor. If these are unset, - # the cursor color will be the inverse of the cell color. - cursor: - text: '#000000' - cursor: '#ffffff' +# Colors which should be used to draw the terminal cursor. If these are unset, +# the cursor color will be the inverse of the cell color. + cursor: + text: '#000000' + cursor: '#ffffff' - # Selection colors +# Selection colors - # Colors which should be used to draw the selection area. If selection - # background is unset, selection color will be the inverse of the cell colors. - # If only text is unset the cell text color will remain the same. - selection: - text: '#eaeaea' - background: '#404040' +# Colors which should be used to draw the selection area. If selection +# background is unset, selection color will be the inverse of the cell colors. +# If only text is unset the cell text color will remain the same. + selection: + text: '#eaeaea' + background: '#404040' - # Normal colors - normal: - black: '#000000' - red: '#d54e53' - green: '#b9ca4a' - yellow: '#e6c547' - blue: '#7aa6da' - magenta: '#c397d8' - cyan: '#70c0ba' - white: '#eaeaea' +# Normal colors + normal: + black: '#000000' + red: '#d54e53' + green: '#b9ca4a' + yellow: '#e6c547' + blue: '#7aa6da' + magenta: '#c397d8' + cyan: '#70c0ba' + white: '#eaeaea' - # Bright colors - bright: - black: '#666666' - red: '#ff3334' - green: '#9ec400' - yellow: '#e7c547' - blue: '#7aa6da' - magenta: '#b77ee0' - cyan: '#54ced6' - white: '#ffffff' +# Bright colors + bright: + black: '#666666' + red: '#ff3334' + green: '#9ec400' + yellow: '#e7c547' + blue: '#7aa6da' + magenta: '#b77ee0' + cyan: '#54ced6' + white: '#ffffff' - # Dim colors +# Dim colors - # If the dim colors are not set, they will be calculated automatically based - # on the `normal` colors. - dim: - black: '#000000' - red: '#8c3336' - green: '#7a8530' - yellow: '#97822e' - blue: '#506d8f' - magenta: '#80638e' - cyan: '#497e7a' - white: '#9a9a9a' +# If the dim colors are not set, they will be calculated automatically based +# on the `normal` colors. + dim: + black: '#000000' + red: '#8c3336' + green: '#7a8530' + yellow: '#97822e' + blue: '#506d8f' + magenta: '#80638e' + cyan: '#497e7a' + white: '#9a9a9a' #+end_src ***** Dracula *NOT IN USE* #+begin_src conf :tangle no - colors: - # Default colors - primary: - background: "0x282a36" - foreground: "0xf8f8f2" +colors: + # Default colors + primary: + background: "0x282a36" + foreground: "0xf8f8f2" - # Bright and dim foreground colors - # - # The dimmed foreground color is calculated automatically if it is not present. - # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` - # is `false`, the normal foreground color will be used. - #dim_foreground: '0x9a9a9a' - #bright_foreground: '0xffffff' + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not present. + # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` + # is `false`, the normal foreground color will be used. + #dim_foreground: '0x9a9a9a' + #bright_foreground: '0xffffff' - # Cursor colors - # - # Colors which should be used to draw the terminal cursor. If these are unset, - # the cursor color will be the inverse of the cell color. - cursor: - text: "0x44475a" - cursor: "0xf8f8f2" + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. If these are unset, + # the cursor color will be the inverse of the cell color. + cursor: + text: "0x44475a" + cursor: "0xf8f8f2" - # Normal colors - normal: - black: "0x000000" - red: "0xff5555" - green: "0x50fa7b" - yellow: "0xf1fa8c" - blue: "0xbd93f9" - magenta: "0xff79c6" - cyan: "0x8be9fd" - white: "0xbfbfbf" + # Normal colors + normal: + black: "0x000000" + red: "0xff5555" + green: "0x50fa7b" + yellow: "0xf1fa8c" + blue: "0xbd93f9" + magenta: "0xff79c6" + cyan: "0x8be9fd" + white: "0xbfbfbf" - # Bright colors - bright: - black: "0x4d4d4d" - red: "0xff6e67" - green: "0x5af78e" - yellow: "0xf4f99d" - blue: "0xcaa9fa" - magenta: "0xff92d0" - cyan: "0x9aedfe" - white: "0xe6e6e6" + # Bright colors + bright: + black: "0x4d4d4d" + red: "0xff6e67" + green: "0x5af78e" + yellow: "0xf4f99d" + blue: "0xcaa9fa" + magenta: "0xff92d0" + cyan: "0x9aedfe" + white: "0xe6e6e6" - # Dim colors - # - # If the dim colors are not set, they will be calculated automatically based - # on the `normal` colors. - dim: - black: "0x14151b" - red: "0xff2222" - green: "0x1ef956" - yellow: "0xebf85b" - blue: "0x4d5b86" - magenta: "0xff46b0" - cyan: "0x59dffc" - white: "0xe6e6d1" + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + dim: + black: "0x14151b" + red: "0xff2222" + green: "0x1ef956" + yellow: "0xebf85b" + blue: "0x4d5b86" + magenta: "0xff46b0" + cyan: "0x59dffc" + white: "0xe6e6d1" #+end_src ***** Dracula PRO #+begin_src conf :tangle .config/alacritty/alacritty.yml - colors: - # Default colors - primary: - background: "0x22212c" - foreground: "0xf8f8f2" +colors: + # Default colors + primary: + background: "0x22212c" + foreground: "0xf8f8f2" - # Bright and dim foreground colors - # - # The dimmed foreground color is calculated automatically if it is not present. - # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` - # is `false`, the normal foreground color will be used. - #dim_foreground: '0x9a9a9a' - #bright_foreground: '0xffffff' + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not present. + # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` + # is `false`, the normal foreground color will be used. + #dim_foreground: '0x9a9a9a' + #bright_foreground: '0xffffff' - # Cursor colors - # - # Colors which should be used to draw the terminal cursor. If these are unset, - # the cursor color will be the inverse of the cell color. - cursor: - text: "0x454158" - cursor: "0xf8f8f2" + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. If these are unset, + # the cursor color will be the inverse of the cell color. + cursor: + text: "0x454158" + cursor: "0xf8f8f2" - # Selection colors - # - # Colors which should be used to draw the selection area. If selection - # background is unset, selection color will be the inverse of the cell colors. - # If only text is unset the cell text color will remain the same. - selection: - text: "0xf8f8f2" - background: "0x454158" + # Selection colors + # + # Colors which should be used to draw the selection area. If selection + # background is unset, selection color will be the inverse of the cell colors. + # If only text is unset the cell text color will remain the same. + selection: + text: "0xf8f8f2" + background: "0x454158" - # Normal colors - normal: - black: "0x22212c" - red: "0xff9580" - green: "0x8aff80" - yellow: "0xffff80" - blue: "0x9580ff" - magenta: "0xff80bf" - cyan: "0x80ffea" - white: "0xf8f8f2" + # Normal colors + normal: + black: "0x22212c" + red: "0xff9580" + green: "0x8aff80" + yellow: "0xffff80" + blue: "0x9580ff" + magenta: "0xff80bf" + cyan: "0x80ffea" + white: "0xf8f8f2" - # Bright colors - bright: - black: "0x22212c" - red: "0xffaa99" - green: "0xa2ff99" - yellow: "0xffff99" - blue: "0xaa99ff" - magenta: "0xff99cc" - cyan: "0x99ffee" - white: "0xffffff" + # Bright colors + bright: + black: "0x22212c" + red: "0xffaa99" + green: "0xa2ff99" + yellow: "0xffff99" + blue: "0xaa99ff" + magenta: "0xff99cc" + cyan: "0x99ffee" + white: "0xffffff" - # Indexed Colors - # - # The indexed colors include all colors from 16 to 256. - # When these are not set, they're filled with sensible defaults. - # - # Example: - # `- { index: 16, color: '0xff00ff' }` - # - indexed_colors: [] + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '0xff00ff' }` + # + indexed_colors: [] #+end_src **** Visual Bell #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Bell +# Bell +# +# The bell is rung every time the BEL control character is received. +#bell: + # Visual Bell Animation # - # The bell is rung every time the BEL control character is received. - #bell: - # Visual Bell Animation - # - # Animation effect for flashing the screen when the visual bell is rung. - # - # Values for `animation`: - # - Ease - # - EaseOut - # - EaseOutSine - # - EaseOutQuad - # - EaseOutCubic - # - EaseOutQuart - # - EaseOutQuint - # - EaseOutExpo - # - EaseOutCirc - # - Linear - #animation: EaseOutExpo + # Animation effect for flashing the screen when the visual bell is rung. + # + # Values for `animation`: + # - Ease + # - EaseOut + # - EaseOutSine + # - EaseOutQuad + # - EaseOutCubic + # - EaseOutQuart + # - EaseOutQuint + # - EaseOutExpo + # - EaseOutCirc + # - Linear + #animation: EaseOutExpo - # Duration of the visual bell flash in milliseconds. A `duration` of `0` will - # disable the visual bell animation. - #duration: 0 + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. + #duration: 0 - # Visual bell animation color. - #color: '#ffffff' + # Visual bell animation color. + #color: '#ffffff' - # Bell Command - # - # This program is executed whenever the bell is rung. - # - # When set to `command: None`, no command will be executed. - # - # Example: - # command: - # program: notify-send - # args: ["Hello, World!"] - # - #command: None + # Bell Command + # + # This program is executed whenever the bell is rung. + # + # When set to `command: None`, no command will be executed. + # + # Example: + # command: + # program: notify-send + # args: ["Hello, World!"] + # + #command: None #+end_src **** Background Opacity #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Background opacity - # - # Window opacity as a floating point number from `0.0` to `1.0`. - # The value `0.0` is completely transparent and `1.0` is opaque. - # background_opacity: 1.0 - background_opacity: 0.8 +# Background opacity +# +# Window opacity as a floating point number from `0.0` to `1.0`. +# The value `0.0` is completely transparent and `1.0` is opaque. +# background_opacity: 1.0 +background_opacity: 0.8 #+end_src **** Selection #+begin_src conf :tangle .config/alacritty/alacritty.yml - #selection: - #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" +#selection: +#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" - # When set to `true`, selected text will be copied to the primary clipboard. - #save_to_clipboard: false +# When set to `true`, selected text will be copied to the primary clipboard. +#save_to_clipboard: false #+end_src **** Window Title #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Allow terminal applications to change Alacritty's window title. - #dynamic_title: true +# Allow terminal applications to change Alacritty's window title. +#dynamic_title: true #+end_src **** Cursor #+begin_src conf :tangle .config/alacritty/alacritty.yml - cursor: - # Cursor style - # - # Values for `style`: - # - ▇ Block - # - _ Underline - # - | Beam - style: Beam +cursor: + # Cursor style + # + # Values for `style`: + # - ▇ Block + # - _ Underline + # - | Beam + style: Beam - # If this is `true`, the cursor will be rendered as a hollow box when the - # window is not focused. - #unfocused_hollow: true + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true #+end_src **** Live Config Reload #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Live config reload (changes require restart) - live_config_reload: true +# Live config reload (changes require restart) +live_config_reload: true #+end_src **** Shell #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Shell - # - # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. - # Entries in `shell.args` are passed unmodified as arguments to the shell. - # - # Default: - # - (macOS) /bin/bash --login - # - (Linux/BSD) user login shell - # - (Windows) powershell - shell: - program: /usr/bin/fish - # args: - # - -l - # - -c - # - "tmux attach || tmux" +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. +# Entries in `shell.args` are passed unmodified as arguments to the shell. +# +# Default: +# - (macOS) /bin/bash --login +# - (Linux/BSD) user login shell +# - (Windows) powershell +shell: + program: /usr/bin/fish + # args: + # - -l + # - -c + # - "tmux attach || tmux" #+end_src **** Startup Directory #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Startup directory - # - # Directory the shell is started in. If this is unset, or `None`, the working - # directory of the parent process will be used. - #working_directory: None +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None #+end_src **** WinPTY Backend (Windows Only) #+begin_src conf :tangle .config/alacritty/alacritty.yml - # WinPTY backend (Windows only) - # - # Alacritty defaults to using the newer ConPTY backend if it is available, - # since it resolves a lot of bugs and is quite a bit faster. If it is not - # available, the the WinPTY backend will be used instead. - # - # Setting this option to `true` makes Alacritty use the legacy WinPTY backend, - # even if the ConPTY backend is available. - #winpty_backend: false +# WinPTY backend (Windows only) +# +# Alacritty defaults to using the newer ConPTY backend if it is available, +# since it resolves a lot of bugs and is quite a bit faster. If it is not +# available, the the WinPTY backend will be used instead. +# +# Setting this option to `true` makes Alacritty use the legacy WinPTY backend, +# even if the ConPTY backend is available. +#winpty_backend: false #+end_src **** Alt Send Escape #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Send ESC (\x1b) before characters when alt is pressed. - #alt_send_esc: true +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true #+end_src **** Mouse #+begin_src conf :tangle .config/alacritty/alacritty.yml - # mouse: - # Click settings - # - # The `double_click` and `triple_click` settings control the time - # alacritty should wait for accepting multiple clicks as one double - # or triple click. - #double_click: { threshold: 300 } - #triple_click: { threshold: 300 } +# mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + #double_click: { threshold: 300 } + #triple_click: { threshold: 300 } - # If this is `true`, the cursor is temporarily hidden when typing. - #hide_when_typing: false + # If this is `true`, the cursor is temporarily hidden when typing. + #hide_when_typing: false #+end_src **** Hints #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Regex hints - # - # Terminal hints can be used to find text in the visible part of the terminal - # and pipe it to other applications. - #hints: - # Keys used for the hint labels. - #alphabet: "jfkdls;ahgurieowpq" +# Regex hints +# +# Terminal hints can be used to find text in the visible part of the terminal +# and pipe it to other applications. +#hints: + # Keys used for the hint labels. + #alphabet: "jfkdls;ahgurieowpq" - # List with all available hints - # - # Each hint must have a `regex` and either an `action` or a `command` field. - # The fields `mouse`, `binding` and `post_processing` are optional. - # - # The fields `command`, `binding.key`, `binding.mods` and `mouse.mods` accept - # the same values as they do in the `key_bindings` section. - # - # The `mouse.enabled` field controls if the hint should be underlined while - # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. - # - # If the `post_processing` field is set to `true`, heuristics will be used to - # shorten the match if there are characters likely not to be part of the hint - # (e.g. a trailing `.`). This is most useful for URIs. - # - # Values for `action`: - # - Copy - # Copy the hint's text to the clipboard. - # - Paste - # Paste the hint's text to the terminal or search. - # - Select - # Select the hint's text. - # - MoveViModeCursor - # Move the vi mode cursor to the beginning of the hint. - #enabled: - # - regex: "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ - # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" - # command: xdg-open - # post_processing: true - # mouse: - # enabled: true - # mods: None - # binding: - # key: U - # mods: Control|Shift + # List with all available hints + # + # Each hint must have a `regex` and either an `action` or a `command` field. + # The fields `mouse`, `binding` and `post_processing` are optional. + # + # The fields `command`, `binding.key`, `binding.mods` and `mouse.mods` accept + # the same values as they do in the `key_bindings` section. + # + # The `mouse.enabled` field controls if the hint should be underlined while + # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. + # + # If the `post_processing` field is set to `true`, heuristics will be used to + # shorten the match if there are characters likely not to be part of the hint + # (e.g. a trailing `.`). This is most useful for URIs. + # + # Values for `action`: + # - Copy + # Copy the hint's text to the clipboard. + # - Paste + # Paste the hint's text to the terminal or search. + # - Select + # Select the hint's text. + # - MoveViModeCursor + # Move the vi mode cursor to the beginning of the hint. + #enabled: + # - regex: "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + # command: xdg-open + # post_processing: true + # mouse: + # enabled: true + # mods: None + # binding: + # key: U + # mods: Control|Shift #+end_src **** Mouse Bindings #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Mouse bindings - # - # Mouse bindings are specified as a list of objects, much like the key - # bindings further below. - # - # To trigger mouse bindings when an application running within Alacritty captures the mouse, the - # `Shift` modifier is automatically added as a requirement. - # - # Each mouse binding will specify a: - # - # - `mouse`: - # - # - Middle - # - Left - # - Right - # - Numeric identifier such as `5` - # - # - `action` (see key bindings) - # - # And optionally: - # - # - `mods` (see key bindings) - #mouse_bindings: - # - { mouse: Middle, action: PasteSelection } +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty captures the mouse, the +# `Shift` modifier is automatically added as a requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings) +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Middle, action: PasteSelection } #+end_src **** Key Bindings #+begin_src conf :tangle .config/alacritty/alacritty.yml - # Key bindings - # - # Key bindings are specified as a list of objects. For example, this is the - # default paste binding: - # - # `- { key: V, mods: Control|Shift, action: Paste }` - # - # Each key binding will specify a: - # - # - `key`: Identifier of the key pressed - # - # - A-Z - # - F1-F24 - # - Key0-Key9 - # - # A full list with available key codes can be found here: - # https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants - # - # Instead of using the name of the keys, the `key` field also supports using - # the scancode of the desired key. Scancodes have to be specified as a - # decimal number. This command will allow you to display the hex scancodes - # for certain keys: - # - # `showkey --scancodes`. - # - # Then exactly one of: - # - # - `chars`: Send a byte sequence to the running application - # - # The `chars` field writes the specified string to the terminal. This makes - # it possible to pass escape sequences. To find escape codes for bindings - # like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside - # of tmux. Note that applications use terminfo to map escape sequences back - # to keys. It is therefore required to update the terminfo when changing an - # escape sequence. - # - # - `action`: Execute a predefined action - # - # - Copy - # - Paste - # - PasteSelection - # - IncreaseFontSize - # - DecreaseFontSize - # - ResetFontSize - # - ScrollPageUp - # - ScrollPageDown - # - ScrollLineUp - # - ScrollLineDown - # - ScrollToTop - # - ScrollToBottom - # - ClearHistory - # - Hide - # - Minimize - # - Quit - # - ToggleFullscreen - # - SpawnNewInstance - # - ClearLogNotice - # - ReceiveChar - # - None - # - # (macOS only): - # - ToggleSimpleFullscreen: Enters fullscreen without occupying another space - # - # - `command`: Fork and execute a specified command plus arguments - # - # The `command` field must be a map containing a `program` string and an - # `args` array of command line parameter strings. For example: - # `{ program: "alacritty", args: ["-e", "vttest"] }` - # - # And optionally: - # - # - `mods`: Key modifiers to filter binding actions - # - # - Command - # - Control - # - Option - # - Super - # - Shift - # - Alt - # - # Multiple `mods` can be combined using `|` like this: - # `mods: Control|Shift`. - # Whitespace and capitalization are relevant and must match the example. - # - # - `mode`: Indicate a binding for only specific terminal reported modes - # - # This is mainly used to send applications the correct escape sequences - # when in different modes. - # - # - AppCursor - # - AppKeypad - # - Alt - # - # A `~` operator can be used before a mode to apply the binding whenever - # the mode is *not* active, e.g. `~Alt`. - # - # Bindings are always filled by default, but will be replaced when a new - # binding with the same triggers is defined. To unset a default binding, it can - # be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for - # a no-op if you do not wish to receive input characters for that binding. - # - # If the same trigger is assigned to multiple actions, all of them are executed - # at once. - #key_bindings: - # (Windows, Linux, and BSD only) - #- { key: V, mods: Control|Shift, action: Paste } - #- { key: C, mods: Control|Shift, action: Copy } - #- { key: Insert, mods: Shift, action: PasteSelection } - #- { key: Key0, mods: Control, action: ResetFontSize } - #- { key: Equals, mods: Control, action: IncreaseFontSize } - #- { key: Add, mods: Control, action: IncreaseFontSize } - #- { key: Subtract, mods: Control, action: DecreaseFontSize } - #- { key: Minus, mods: Control, action: DecreaseFontSize } +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - Copy +# - Paste +# - PasteSelection +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Minimize +# - Quit +# - ToggleFullscreen +# - SpawnNewInstance +# - ClearLogNotice +# - ReceiveChar +# - None +# +# (macOS only): +# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Alt +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# at once. +#key_bindings: +# (Windows, Linux, and BSD only) +#- { key: V, mods: Control|Shift, action: Paste } +#- { key: C, mods: Control|Shift, action: Copy } +#- { key: Insert, mods: Shift, action: PasteSelection } +#- { key: Key0, mods: Control, action: ResetFontSize } +#- { key: Equals, mods: Control, action: IncreaseFontSize } +#- { key: Add, mods: Control, action: IncreaseFontSize } +#- { key: Subtract, mods: Control, action: DecreaseFontSize } +#- { key: Minus, mods: Control, action: DecreaseFontSize } - # (Windows only) - #- { key: Return, mods: Alt, action: ToggleFullscreen } +# (Windows only) +#- { key: Return, mods: Alt, action: ToggleFullscreen } - # (macOS only) - #- { key: Key0, mods: Command, action: ResetFontSize } - #- { key: Equals, mods: Command, action: IncreaseFontSize } - #- { key: Add, mods: Command, action: IncreaseFontSize } - #- { key: Minus, mods: Command, action: DecreaseFontSize } - #- { key: K, mods: Command, action: ClearHistory } - #- { key: K, mods: Command, chars: "\x0c" } - #- { key: V, mods: Command, action: Paste } - #- { key: C, mods: Command, action: Copy } - #- { key: H, mods: Command, action: Hide } - #- { key: M, mods: Command, action: Minimize } - #- { key: Q, mods: Command, action: Quit } - #- { key: W, mods: Command, action: Quit } - #- { key: F, mods: Command|Control, action: ToggleFullscreen } +# (macOS only) +#- { key: Key0, mods: Command, action: ResetFontSize } +#- { key: Equals, mods: Command, action: IncreaseFontSize } +#- { key: Add, mods: Command, action: IncreaseFontSize } +#- { key: Minus, mods: Command, action: DecreaseFontSize } +#- { key: K, mods: Command, action: ClearHistory } +#- { key: K, mods: Command, chars: "\x0c" } +#- { key: V, mods: Command, action: Paste } +#- { key: C, mods: Command, action: Copy } +#- { key: H, mods: Command, action: Hide } +#- { key: M, mods: Command, action: Minimize } +#- { key: Q, mods: Command, action: Quit } +#- { key: W, mods: Command, action: Quit } +#- { key: F, mods: Command|Control, action: ToggleFullscreen } - #- { key: Paste, action: Paste } - #- { key: Copy, action: Copy } - #- { key: L, mods: Control, action: ClearLogNotice } - #- { key: L, mods: Control, chars: "\x0c" } - #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } - #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } - #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } - #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } +#- { key: Paste, action: Paste } +#- { key: Copy, action: Copy } +#- { key: L, mods: Control, action: ClearLogNotice } +#- { key: L, mods: Control, chars: "\x0c" } +#- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } +#- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } +#- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } +#- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } #+end_src **** Debug & Logging #+begin_src conf :tangle .config/alacritty/alacritty.yml - #debug: - # Display the time it takes to redraw each frame. - #render_timer: false +#debug: +# Display the time it takes to redraw each frame. +#render_timer: false - # Keep the log file after quitting Alacritty. - #persistent_logging: false +# Keep the log file after quitting Alacritty. +#persistent_logging: false - # Log level - # - # Values for `log_level`: - # - None - # - Error - # - Warn - # - Info - # - Debug - # - Trace - #log_level: Warn +# Log level +# +# Values for `log_level`: +# - None +# - Error +# - Warn +# - Info +# - Debug +# - Trace +#log_level: Warn - # Print all received window events. - #print_events: false +# Print all received window events. +#print_events: false #+end_src * Text Editor @@ -6573,95 +6573,113 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. ** Vim #+begin_src vimrc :tangle .vimrc - " Don't try to be vi compatible - set nocompatible +" Don't try to be vi compatible +set nocompatible - " Syntax Highlighting - syntax on +" Syntax Highlighting +syntax on - " Pick a leader key - let mapleader = "\\" +" Pick a leader key +let mapleader = "\\" - " Security - set modelines=0 +" Security +set modelines=0 - " Show line numbers - set number relativenumber +" Show line numbers +set number relativenumber - " Show file stats - set ruler +" Show file stats +set ruler - " Blink cursors on error instead of beeping - set visualbell +" Blink cursors on error instead of beeping +set visualbell - " Encoding - set encoding=utf-8 +" Encoding +set encoding=utf-8 - " Whitespace - set wrap - set textwidth=110 - set formatoptions=tcqrn1 - set tabstop=4 - set shiftwidth=4 - set softtabstop=4 - set expandtab - set noshiftround - set smarttab - set autoindent +" Whitespace +set wrap +set textwidth=110 +set formatoptions=tcqrn1 +set tabstop=4 +set shiftwidth=4 +set softtabstop=4 +set expandtab +set noshiftround +set smarttab +set autoindent - " Cursor Motion - set scrolloff=3 - set backspace=indent,eol,start - set matchpairs+=<:> " use % to jumb between pairs +" Cursor Motion +set scrolloff=3 +set backspace=indent,eol,start +set matchpairs+=<:> " use % to jumb between pairs - " Allow hidden buffers - set hidden +" Allow hidden buffers +set hidden - " Rendering - set ttyfast +" Rendering +set ttyfast - " Status bar - set laststatus=2 +" Status bar +set laststatus=2 - " Last line - set showmode - set showcmd +" Last line +set showmode +set showcmd - " Searching - nnoremap / /\v - vnoremap / /\v - set hlsearch - set incsearch - set ignorecase - set smartcase - set showmatch - map :let @/='' " clear search +" Searching +nnoremap / /\v +vnoremap / /\v +set hlsearch +set incsearch +set ignorecase +set smartcase +set showmatch +map :let @/='' " clear search - " Formatting - map q gqip +" Formatting +map q gqip - " Visualize tabs and newlines - set listchars=tab:▸\ ,eol:¬ - map l :set list! " Toggle tabs and EOL +" Visualize tabs and newlines +set listchars=tab:▸\ ,eol:¬ +map l :set list! " Toggle tabs and EOL - " Exit Inser Mode Easily - :inoremap jk +" Exit Inser Mode Easily +:inoremap jk - " UI Config - set cursorline - filetype indent on - set wildmenu - set lazyredraw - set showmatch +" UI Config +set cursorline +filetype indent on +set wildmenu +set lazyredraw +set showmatch - " Add Dracula Themes - packadd! dracula - packadd! dracula_pro +" Add Dracula Themes +packadd! dracula +packadd! dracula_pro - " Enable Dracula Pro Theme - syntax enable - let g:dracula_colorterm = 0 - colorscheme dracula_pro +" Enable Dracula Pro Theme +syntax enable +let g:dracula_colorterm = 0 +colorscheme dracula_pro +#+end_src + +** Emacs + +Define emacs configurations with chemacs2. + +#+begin_src emacs-lisp :tangle .emacs-profiles.el +( + ("personal" . ((user-emacs-directory . "~/.config/personal-emacs"))) + ("doom" . ((user-emacs-directory . "~/.config/doom-emacs") + (env . (("DOOMDIR" . "~/.config/doom-emacs-config"))))) +) +#+end_src + +Select the emacs configuration to use by default. + +#+begin_src text :tangle .emacs-profile +doom #+end_src * System Monitor @@ -6669,163 +6687,163 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. ** Conky #+begin_src conf :tangle .config/conky/conky.conf - --[[ - Conky, a system monitor, based on torsmo +--[[ +Conky, a system monitor, based on torsmo - Any original torsmo code is licensed under the BSD license +Any original torsmo code is licensed under the BSD license - All code written since the fork of torsmo is licensed under the GPL +All code written since the fork of torsmo is licensed under the GPL - Please see COPYING for details +Please see COPYING for details - Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen - Copyright (c) 2005-2021 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS) - All rights reserved. +Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen +Copyright (c) 2005-2021 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS) +All rights reserved. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . - ]] +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +]] - conky.config ={ - -- CONKY SETTINGS - background = true, - update_interval = 1, - update_interval_on_battery = 5, - total_run_times = 0, +conky.config ={ + -- CONKY SETTINGS + background = true, + update_interval = 1, + update_interval_on_battery = 5, + total_run_times = 0, - cpu_avg_samples = 2, - net_avg_samples = 2, + cpu_avg_samples = 2, + net_avg_samples = 2, - override_utf8_locale = true, + override_utf8_locale = true, - double_buffer = true, - no_buffers = true, + double_buffer = true, + no_buffers = true, - text_buffer_size = 32768, + text_buffer_size = 32768, - -- CONKY: WINDOW SPECIFICATIONS - own_window = true, - own_window_argb_value = 192, - own_window_argb_visual = true, - own_window_class = 'conky-semi', - -- own_window_colour = '#0b0d18', - own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', - own_window_transparent = true, - own_window_type = 'dock', + -- CONKY: WINDOW SPECIFICATIONS + own_window = true, + own_window_argb_value = 192, + own_window_argb_visual = true, + own_window_class = 'conky-semi', + -- own_window_colour = '#0b0d18', + own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', + own_window_transparent = true, + own_window_type = 'dock', - border_inner_margin = 6, - border_width = 5, + border_inner_margin = 6, + border_width = 5, - minimum_height = 1020, + minimum_height = 1020, - minimum_width = 280, - maximum_width = 280, + minimum_width = 280, + maximum_width = 280, - alignment = 'bottom_left', - gap_x = 10, - gap_y = 0, + alignment = 'bottom_left', + gap_x = 10, + gap_y = 0, - -- GRAPHICS SETTINGS - draw_outline = true, - draw_outline = false, - draw_borders = false, - draw_graph_borders = true, - -- draw_graph_borders = false, + -- GRAPHICS SETTINGS + draw_outline = true, + draw_outline = false, + draw_borders = false, + draw_graph_borders = true, + -- draw_graph_borders = false, - -- TEXT SETTINGS - use_xft = true, - font = 'Montserrat Regular:size=10', - xftalpha = 0.2, + -- TEXT SETTINGS + use_xft = true, + font = 'Montserrat Regular:size=10', + xftalpha = 0.2, - uppercase = false, + uppercase = false, - -- Pad percentages to this many decimals (0 = no padding) - pad_percents = 2, + -- Pad percentages to this many decimals (0 = no padding) + pad_percents = 2, - -- COLOUR SETTINGS - default_color = 'AAAAAA', - default_shade_color = '333333', - -- default_outline_color = '111111', - default_outline_color = '010101', - color1 = '999999', - color2 = 'CCCCCC', - color3 = 'EEEEEE', - color4 = '444444', - color5 = '555555', - color6 = '666666', - color7 = '3b71a1', - }; + -- COLOUR SETTINGS + default_color = 'AAAAAA', + default_shade_color = '333333', + -- default_outline_color = '111111', + default_outline_color = '010101', + color1 = '999999', + color2 = 'CCCCCC', + color3 = 'EEEEEE', + color4 = '444444', + color5 = '555555', + color6 = '666666', + color7 = '3b71a1', +}; - conky.text = [[ - ${alignc}${color1}${font Montserrat Bold:size=20}${time %X (%Z)}${font}${color}${alignc} - ${voffset -9} - ${alignc}${font Montserrat Light:size=10}${time %A %d %B %Y}${font}${alignc} - ${color6}${hr 2}${color} - ${voffset -6} - ${font Montserrat Light:size=8}${color1}SYSTEM:${color}${font} ${alignr}$sysname $nodename - ${font Montserrat Light:size=8}${color1}UPTIME:${color}${font} ${alignr}$uptime_short - ${font Montserrat Light:size=8}${color1}KERNEL:${color}${font} ${alignr}$kernel ${voffset 5} - ${font :size=11}${color}CPUs ${color}${hr 2}${color} - ${voffset -15} - ${font Montserrat Light:size=10}${color1}CPU:${color}${font} ${alignr}${color}${execi 300 cat /proc/cpuinfo | grep 'model name' | cut -c 14-40 | uniq}${color}${font} - ${font Montserrat Light:size=9}${color1}Used: ${alignr}${color}${font}${cpu cpu0}% - ${font :size=11}${color}${cpubar cpu0}${color} - ${voffset -15} - ${font Montserrat Light:size=9}${color1}01 - 04:${color}${font} ${goto 100}${cpu cpu1}% ${goto 150}${cpu cpu2 }% ${goto 200}${cpu cpu3 }% ${goto 250}${cpu cpu4 }% - ${font Montserrat Light:size=9}${color1}05 - 08:${color}${font} ${goto 100}${cpu cpu5}% ${goto 150}${cpu cpu6 }% ${goto 200}${cpu cpu7 }% ${goto 250}${cpu cpu8 }% - ${font Montserrat Light:size=9}${color1}09 - 12:${color}${font} ${goto 100}${cpu cpu9}% ${goto 150}${cpu cpu10}% ${goto 200}${cpu cpu11}% ${goto 250}${cpu cpu12}% - ${voffset -8} - ${font Montserrat Light:size=9}${color1}CPU TEMP:${color}${font} ${font :size=10}${alignr}${hwmon 1 temp 1}°${color4}C${color}${voffset 5} - ${font :size=11}${color}Network ${color}${hr 2}${color} - ${voffset -15} - # ${font Montserrat Light:size=10}${color1}IP ADDRESS:${color}${font} ${alignr}${addr wlp0s20f3} - ${if_match "${addr wlp0s20f3}"!="No Address"}${voffset 5}${font Montserrat Light:size=10}${font}Download ${alignr}${downspeedf wlp0s20f3}k/s (${totaldown wlp0s20f3}) - ${color3}${downspeedgraph wlp0s20f3 50,280 ADFF2F 32CD32 -t} - ${font Montserrat Light:size=10}${font}Upload ${alignr}${upspeedf wlp0s20f3}k/s (${totalup wlp0s20f3}) - ${color3}${upspeedgraph wlp0s20f3 50,280 FF0000 8B0000 -t} - ${endif}${voffset 5}${font :size=11}${color}HDD ${color}${hr 2}${color} - ${color1}Used: ${color3}${fs_used /}${color1}${goto 190}Free:${goto 230}${color3}${fs_free /} - ${color2}${fs_bar /} - ${font Montserrat Light:size=8}${color1}DISK I/O:${color}${font} ${alignr}$diskio - ${voffset 2}${font Montserrat Light:size=8}${color1}READ: ${color}${font} ${goto 80}${color4}${diskiograph_read 15,210 ADFF2F 32CD32 750}${color} - ${voffset 2}${font Montserrat Light:size=8}${color1}WRITE:${color}${font} ${goto 80}${color4}${diskiograph_write 15,210 FF0000 8B0000 750}${color} - ${font :size=11}${color}Memory ${color}${hr 2}${color}${voffset 2} - $font${color DimGray}RAM $alignc $mem / $memmax $alignr ${color 188f18}$memperc% - ${color 188f18}$membar${voffset 1} - ${font :size=11}${color}GPU ${color}${hr 2}${color}${voffset 2} - ${font Montserrat Light:size=9}${color1}GPU Freq.: $alignr ${color}${font}${nvidia gpufreq} Mhz${voffset 3} - ${font Montserrat Light:size=9}${color1}Memory Freq.: $alignr ${color}${font}${nvidia memfreq} Mhz${voffset 3} - ${font Montserrat Light:size=9}${color1}Temperature: $alignr ${color}${font}${nvidia temp}°C ${voffset 3} - ${voffset 3}${font :size=11}${color}Processes ${color}${hr 2}${color} - ${voffset -15} - ${font :size=10}${font Montserrat Light:size=8}${color1}TOTAL:${color}${font} ${alignr}${processes} - ${voffset -10} - ${font Montserrat Light:size=9}${color1}APP NAME: ${goto 160}MEMORY: ${goto 245}CPU: ${color}${font} - ${voffset -16} - ${font Montserrat Light:size=9}${color1}${top_mem name 1} ${color}${font} ${goto 160}${top mem 1} % ${goto 235}${top cpu 1} % - ${font Montserrat Light:size=9}${color1}${top_mem name 2} ${color}${font} ${goto 160}${top mem 2} % ${goto 235}${top cpu 2} % - ${font Montserrat Light:size=9}${color1}${top_mem name 3} ${color}${font} ${goto 160}${top mem 3} % ${goto 235}${top cpu 3} % - ${font Montserrat Light:size=9}${color1}${top_mem name 4} ${color}${font} ${goto 160}${top mem 4} % ${goto 235}${top cpu 4} % - ${font Montserrat Light:size=9}${color1}${top_mem name 5} ${color}${font} ${goto 160}${top mem 5} % ${goto 235}${top cpu 5} % - ${font Montserrat Light:size=9}${color1}${top_mem name 6} ${color}${font} ${goto 160}${top mem 6} % ${goto 235}${top cpu 6} % - ${font Montserrat Light:size=9}${color1}${top_mem name 7} ${color}${font} ${goto 160}${top mem 7} % ${goto 235}${top cpu 7} % - ${font Montserrat Light:size=9}${color1}${top_mem name 8} ${color}${font} ${goto 160}${top mem 8} % ${goto 235}${top cpu 8} % - ${font Montserrat Light:size=9}${color1}${top_mem name 9} ${color}${font} ${goto 160}${top mem 9} % ${goto 235}${top cpu 9} % - ${font Montserrat Light:size=9}${color1}${top_mem name 10} ${color}${font} ${goto 160}${top mem 10} % ${goto 235}${top cpu 10} % +conky.text = [[ +${alignc}${color1}${font Montserrat Bold:size=20}${time %X (%Z)}${font}${color}${alignc} +${voffset -9} +${alignc}${font Montserrat Light:size=10}${time %A %d %B %Y}${font}${alignc} +${color6}${hr 2}${color} +${voffset -6} +${font Montserrat Light:size=8}${color1}SYSTEM:${color}${font} ${alignr}$sysname $nodename +${font Montserrat Light:size=8}${color1}UPTIME:${color}${font} ${alignr}$uptime_short +${font Montserrat Light:size=8}${color1}KERNEL:${color}${font} ${alignr}$kernel ${voffset 5} +${font :size=11}${color}CPUs ${color}${hr 2}${color} +${voffset -15} +${font Montserrat Light:size=10}${color1}CPU:${color}${font} ${alignr}${color}${execi 300 cat /proc/cpuinfo | grep 'model name' | cut -c 14-40 | uniq}${color}${font} +${font Montserrat Light:size=9}${color1}Used: ${alignr}${color}${font}${cpu cpu0}% +${font :size=11}${color}${cpubar cpu0}${color} +${voffset -15} +${font Montserrat Light:size=9}${color1}01 - 04:${color}${font} ${goto 100}${cpu cpu1}% ${goto 150}${cpu cpu2 }% ${goto 200}${cpu cpu3 }% ${goto 250}${cpu cpu4 }% +${font Montserrat Light:size=9}${color1}05 - 08:${color}${font} ${goto 100}${cpu cpu5}% ${goto 150}${cpu cpu6 }% ${goto 200}${cpu cpu7 }% ${goto 250}${cpu cpu8 }% +${font Montserrat Light:size=9}${color1}09 - 12:${color}${font} ${goto 100}${cpu cpu9}% ${goto 150}${cpu cpu10}% ${goto 200}${cpu cpu11}% ${goto 250}${cpu cpu12}% +${voffset -8} +${font Montserrat Light:size=9}${color1}CPU TEMP:${color}${font} ${font :size=10}${alignr}${hwmon 1 temp 1}°${color4}C${color}${voffset 5} +${font :size=11}${color}Network ${color}${hr 2}${color} +${voffset -15} +# ${font Montserrat Light:size=10}${color1}IP ADDRESS:${color}${font} ${alignr}${addr wlp0s20f3} +${if_match "${addr wlp0s20f3}"!="No Address"}${voffset 5}${font Montserrat Light:size=10}${font}Download ${alignr}${downspeedf wlp0s20f3}k/s (${totaldown wlp0s20f3}) +${color3}${downspeedgraph wlp0s20f3 50,280 ADFF2F 32CD32 -t} +${font Montserrat Light:size=10}${font}Upload ${alignr}${upspeedf wlp0s20f3}k/s (${totalup wlp0s20f3}) +${color3}${upspeedgraph wlp0s20f3 50,280 FF0000 8B0000 -t} +${endif}${voffset 5}${font :size=11}${color}HDD ${color}${hr 2}${color} +${color1}Used: ${color3}${fs_used /}${color1}${goto 190}Free:${goto 230}${color3}${fs_free /} +${color2}${fs_bar /} +${font Montserrat Light:size=8}${color1}DISK I/O:${color}${font} ${alignr}$diskio +${voffset 2}${font Montserrat Light:size=8}${color1}READ: ${color}${font} ${goto 80}${color4}${diskiograph_read 15,210 ADFF2F 32CD32 750}${color} +${voffset 2}${font Montserrat Light:size=8}${color1}WRITE:${color}${font} ${goto 80}${color4}${diskiograph_write 15,210 FF0000 8B0000 750}${color} +${font :size=11}${color}Memory ${color}${hr 2}${color}${voffset 2} +$font${color DimGray}RAM $alignc $mem / $memmax $alignr ${color 188f18}$memperc% +${color 188f18}$membar${voffset 1} +${font :size=11}${color}GPU ${color}${hr 2}${color}${voffset 2} +${font Montserrat Light:size=9}${color1}GPU Freq.: $alignr ${color}${font}${nvidia gpufreq} Mhz${voffset 3} +${font Montserrat Light:size=9}${color1}Memory Freq.: $alignr ${color}${font}${nvidia memfreq} Mhz${voffset 3} +${font Montserrat Light:size=9}${color1}Temperature: $alignr ${color}${font}${nvidia temp}°C ${voffset 3} +${voffset 3}${font :size=11}${color}Processes ${color}${hr 2}${color} +${voffset -15} +${font :size=10}${font Montserrat Light:size=8}${color1}TOTAL:${color}${font} ${alignr}${processes} +${voffset -10} +${font Montserrat Light:size=9}${color1}APP NAME: ${goto 160}MEMORY: ${goto 245}CPU: ${color}${font} +${voffset -16} +${font Montserrat Light:size=9}${color1}${top_mem name 1} ${color}${font} ${goto 160}${top mem 1} % ${goto 235}${top cpu 1} % +${font Montserrat Light:size=9}${color1}${top_mem name 2} ${color}${font} ${goto 160}${top mem 2} % ${goto 235}${top cpu 2} % +${font Montserrat Light:size=9}${color1}${top_mem name 3} ${color}${font} ${goto 160}${top mem 3} % ${goto 235}${top cpu 3} % +${font Montserrat Light:size=9}${color1}${top_mem name 4} ${color}${font} ${goto 160}${top mem 4} % ${goto 235}${top cpu 4} % +${font Montserrat Light:size=9}${color1}${top_mem name 5} ${color}${font} ${goto 160}${top mem 5} % ${goto 235}${top cpu 5} % +${font Montserrat Light:size=9}${color1}${top_mem name 6} ${color}${font} ${goto 160}${top mem 6} % ${goto 235}${top cpu 6} % +${font Montserrat Light:size=9}${color1}${top_mem name 7} ${color}${font} ${goto 160}${top mem 7} % ${goto 235}${top cpu 7} % +${font Montserrat Light:size=9}${color1}${top_mem name 8} ${color}${font} ${goto 160}${top mem 8} % ${goto 235}${top cpu 8} % +${font Montserrat Light:size=9}${color1}${top_mem name 9} ${color}${font} ${goto 160}${top mem 9} % ${goto 235}${top cpu 9} % +${font Montserrat Light:size=9}${color1}${top_mem name 10} ${color}${font} ${goto 160}${top mem 10} % ${goto 235}${top cpu 10} % - # ${font Montserrat Light:size=10}${color1}${alignr}by: Mo Abdrabou${color}${font} +# ${font Montserrat Light:size=10}${color1}${alignr}by: Mo Abdrabou${color}${font} - ]]; +]]; #+end_src * Gaming @@ -6834,42 +6852,42 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. *** General #+begin_src conf :tangle .config/gamemode.ini - [general] - ; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance - reaper_freq=5 +[general] +; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance +reaper_freq=5 - ; The desired governor is used when entering GameMode instead of "performance" - desiredgov=performance - ; The default governor is used when leaving GameMode instead of restoring the original value - ;defaultgov=powersave +; The desired governor is used when entering GameMode instead of "performance" +desiredgov=performance +; The default governor is used when leaving GameMode instead of restoring the original value +;defaultgov=powersave - ; The iGPU desired governor is used when the integrated GPU is under heavy load - igpu_desiredgov=powersave - ; Threshold to use to decide when the integrated GPU is under heavy load. - ; This is a ratio of iGPU Watts / CPU Watts which is used to determine when the - ; integraged GPU is under heavy enough load to justify switching to - ; igpu_desiredgov. Set this to -1 to disable all iGPU checking and always - ; use desiredgov for games. - igpu_power_threshold=0.3 +; The iGPU desired governor is used when the integrated GPU is under heavy load +igpu_desiredgov=powersave +; Threshold to use to decide when the integrated GPU is under heavy load. +; This is a ratio of iGPU Watts / CPU Watts which is used to determine when the +; integraged GPU is under heavy enough load to justify switching to +; igpu_desiredgov. Set this to -1 to disable all iGPU checking and always +; use desiredgov for games. +igpu_power_threshold=0.3 - ; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently - ; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable - ; with 4 or more CPU cores. "on" will always enable. Defaults to "off". - softrealtime=off +; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently +; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable +; with 4 or more CPU cores. "on" will always enable. Defaults to "off". +softrealtime=off - ; GameMode can renice game processes. You can put any value between 0 and 20 here, the value - ; will be negated and applied as a nice value (0 means no change). Defaults to 0. - renice=10 +; GameMode can renice game processes. You can put any value between 0 and 20 here, the value +; will be negated and applied as a nice value (0 means no change). Defaults to 0. +renice=10 - ; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value - ; between 0 and 7 here (with 0 being highest priority), or one of the special values - ; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority), - ; currently, only the best-effort class is supported thus you cannot set it here - ioprio=0 +; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value +; between 0 and 7 here (with 0 being highest priority), or one of the special values +; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority), +; currently, only the best-effort class is supported thus you cannot set it here +ioprio=0 - ; Sets whether gamemode will inhibit the screensaver when active - ; Defaults to 1 - inhibit_screensaver=1 +; Sets whether gamemode will inhibit the screensaver when active +; Defaults to 1 +inhibit_screensaver=1 #+end_src *** Filter @@ -6888,143 +6906,143 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. *** GPU #+begin_src conf :tangle .config/gamemode.ini - [gpu] - ; Here Be Dragons! - ; Warning: Use these settings at your own risk - ; Any damage to hardware incurred due to this feature is your responsibility and yours alone - ; It is also highly recommended you try these settings out first manually to find the sweet spots +[gpu] +; Here Be Dragons! +; Warning: Use these settings at your own risk +; Any damage to hardware incurred due to this feature is your responsibility and yours alone +; It is also highly recommended you try these settings out first manually to find the sweet spots - ; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks - ;apply_gpu_optimisations=0 +; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks +;apply_gpu_optimisations=0 - ; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/ - ;gpu_device=0 +; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/ +;gpu_device=0 - ; Nvidia specific settings - ; Requires the coolbits extension activated in nvidia-xconfig - ; This corresponds to the desired GPUPowerMizerMode - ; "Adaptive"=0 "Prefer Maximum Performance"=1 and "Auto"=2 - ; See NV_CTRL_GPU_POWER_MIZER_MODE and friends in https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrl.h - ;nv_powermizer_mode=1 +; Nvidia specific settings +; Requires the coolbits extension activated in nvidia-xconfig +; This corresponds to the desired GPUPowerMizerMode +; "Adaptive"=0 "Prefer Maximum Performance"=1 and "Auto"=2 +; See NV_CTRL_GPU_POWER_MIZER_MODE and friends in https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrl.h +;nv_powermizer_mode=1 - ; These will modify the core and mem clocks of the highest perf state in the Nvidia PowerMizer - ; They are measured as Mhz offsets from the baseline, 0 will reset values to default, -1 or unset will not modify values - ;nv_core_clock_mhz_offset=0 - ;nv_mem_clock_mhz_offset=0 +; These will modify the core and mem clocks of the highest perf state in the Nvidia PowerMizer +; They are measured as Mhz offsets from the baseline, 0 will reset values to default, -1 or unset will not modify values +;nv_core_clock_mhz_offset=0 +;nv_mem_clock_mhz_offset=0 - ; AMD specific settings - ; Requires a relatively up to date AMDGPU kernel module - ; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring - ; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures - ; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now - ;amd_performance_level=high +; AMD specific settings +; Requires a relatively up to date AMDGPU kernel module +; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring +; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures +; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now +;amd_performance_level=high #+end_src *** Supervisor #+begin_src conf :tangle .config/gamemode.ini - [supervisor] - ; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for - ; The whilelist and blacklist control which supervisor programs are allowed to make the above requests - ;supervisor_whitelist= - ;supervisor_blacklist= +[supervisor] +; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for +; The whilelist and blacklist control which supervisor programs are allowed to make the above requests +;supervisor_whitelist= +;supervisor_blacklist= - ; In case you want to allow a supervisor to take full control of gamemode, this option can be set - ; This will only allow gamemode clients to be registered by using the above functions by a supervisor client - ;require_supervisor=0 +; In case you want to allow a supervisor to take full control of gamemode, this option can be set +; This will only allow gamemode clients to be registered by using the above functions by a supervisor client +;require_supervisor=0 #+end_src *** Custom #+begin_src conf :tangle .config/gamemode.ini - [custom] - ; Custom scripts (executed using the shell) when gamemode starts and ends - ;start=notify-send "GameMode started" - ; /home/me/bin/stop_ethmining.sh +[custom] +; Custom scripts (executed using the shell) when gamemode starts and ends +;start=notify-send "GameMode started" +; /home/me/bin/stop_ethmining.sh - ;end=notify-send "GameMode ended" - ; /home/me/bin/start_ethmining.sh +;end=notify-send "GameMode ended" +; /home/me/bin/start_ethmining.sh - ; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time. - ;script_timeout=10 +; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time. +;script_timeout=10 #+end_src ** MangoHUD #+begin_src conf :tangle .config/MangoHud/MangoHud.conf - toggle_fps_limit=F1 +toggle_fps_limit=F1 - legacy_layout=false - gpu_stats - gpu_temp - gpu_core_clock - gpu_mem_clock - gpu_power - gpu_load_change - gpu_load_value=50,90 - gpu_load_color=FFFFFF,FF7800,CC0000 - gpu_text=GPU - cpu_stats - cpu_temp - cpu_power - cpu_mhz - cpu_load_change - core_load_change - cpu_load_value=50,90 - cpu_load_color=FFFFFF,FF7800,CC0000 - cpu_color=2e97cb - cpu_text=CPU - io_stats - io_read - io_write - io_color=a491d3 - swap - vram - vram_color=ad64c1 - ram - ram_color=c26693 - fps - engine_color=eb5b5b - gpu_name - gpu_color=2e9762 - vulkan_driver - wine - wine_color=eb5b5b - frame_timing=1 - frametime_color=00ff00 - media_player_color=ffffff - background_alpha=0.4 - font_size=24 - background_color=020202 - position=top-left - text_color=ffffff - toggle_hud=Shift_R+F12 - toggle_logging=Shift_L+F2 - output_folder=/home/sravan - media_player_name=spotify +legacy_layout=false +gpu_stats +gpu_temp +gpu_core_clock +gpu_mem_clock +gpu_power +gpu_load_change +gpu_load_value=50,90 +gpu_load_color=FFFFFF,FF7800,CC0000 +gpu_text=GPU +cpu_stats +cpu_temp +cpu_power +cpu_mhz +cpu_load_change +core_load_change +cpu_load_value=50,90 +cpu_load_color=FFFFFF,FF7800,CC0000 +cpu_color=2e97cb +cpu_text=CPU +io_stats +io_read +io_write +io_color=a491d3 +swap +vram +vram_color=ad64c1 +ram +ram_color=c26693 +fps +engine_color=eb5b5b +gpu_name +gpu_color=2e9762 +vulkan_driver +wine +wine_color=eb5b5b +frame_timing=1 +frametime_color=00ff00 +media_player_color=ffffff +background_alpha=0.4 +font_size=24 +background_color=020202 +position=top-left +text_color=ffffff +toggle_hud=Shift_R+F12 +toggle_logging=Shift_L+F2 +output_folder=/home/sravan +media_player_name=spotify #+end_src ** vkBasalt #+begin_src conf :tangle .config/vkBasalt/vkBasalt.conf - casSharpness=1.0 - toggleKey = Home - effects = cas +casSharpness=1.0 +toggleKey = Home +effects = cas #+end_src * SSH #+begin_src conf :tangle .ssh/config - # CAEN On-Campus - Host caen-oncampus - HostName oncampus-course.engin.umich.edu - User balajsra - Compression yes +# CAEN On-Campus +Host caen-oncampus + HostName oncampus-course.engin.umich.edu + User balajsra + Compression yes - # CAEN Off-Campus - Host caen-offcampus - HostName login-course.engin.umich.edu - User balajsra - Compression yes +# CAEN Off-Campus +Host caen-offcampus + HostName login-course.engin.umich.edu + User balajsra + Compression yes #+end_src * System Settings @@ -7034,39 +7052,39 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. *** Environment Variables #+begin_src shell :shebang #!/bin/sh :tangle .xinitrc - export TERM=xterm-256color # Sets the terminal type - export SHELL=/usr/bin/fish # Preferred shell - export EDITOR="emacs" # Default editor - export GIT_EDITOR="emacs" # Default git editor - export BROWSER=vivaldi-stable # Web Browser - export XDG_CONFIG_HOME=$HOME/.config # Set Config directory - export QT_QPA_PLATFORMTHEME=qt5ct # QGtkStyle - export _JAVA_AWT_WM_NONREPARENTING=1 # Java fix for Window Managers +export TERM=xterm-256color # Sets the terminal type +export SHELL=/usr/bin/fish # Preferred shell +export EDITOR="emacs" # Default editor +export GIT_EDITOR="emacs" # Default git editor +export BROWSER=vivaldi-stable # Web Browser +export XDG_CONFIG_HOME=$HOME/.config # Set Config directory +export QT_QPA_PLATFORMTHEME=qt5ct # QGtkStyle +export _JAVA_AWT_WM_NONREPARENTING=1 # Java fix for Window Managers #+end_src *** Load Xresources #+begin_src shell :shebang #!/bin/sh :tangle .xinitrc - xrdb ~/.Xresources +xrdb ~/.Xresources #+end_src *** Startup Applications & Processes #+begin_src shell :shebang #!/bin/sh :tangle .xinitrc - # Startup Applications - /home/sravan/.scripts/startup.sh --kill-startup && - /home/sravan/.scripts/startup.sh --startup +# Startup Applications +/home/sravan/.scripts/startup.sh --kill-startup && + /home/sravan/.scripts/startup.sh --startup - # Delayed Startup Applications - (sleep 5 && - /home/sravan/.scripts/startup.sh --kill-delay && - /home/sravan/.scripts/startup.sh --delay) & +# Delayed Startup Applications +(sleep 5 && + /home/sravan/.scripts/startup.sh --kill-delay && + /home/sravan/.scripts/startup.sh --delay) & #+end_src *** Launch Environment #+begin_src shell :shebang #!/bin/sh :tangle .xinitrc - exec dwm +exec dwm #+end_src ** Xresources @@ -7074,96 +7092,96 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. *** Colors #+begin_src conf :tangle .Xresources - ! Colors - #define FOREGROUND #F8F8F2 - #define BACKGROUND #282A36 - #define BLACK1 #000000 - #define BLACK2 #4D4D4D - #define WHITE1 #E6E6E6 - #define WHITE2 #BFBFBF - #define RED1 #FF5555 - #define RED2 #FF6E67 - #define GREEN1 #50FA7B - #define GREEN2 #5AF78E - #define YELLOW1 #F1FA8C - #define YELLOW2 #F4F99D - #define PURPLE1 #BD93F9 - #define PURPLE2 #CAA9FA - #define PINK1 #FF79C6 - #define PINK2 #FF92D0 - #define CYAN1 #8BE9FD - #define CYAN2 #9AEDFE - #define ORANGE #FFB86C +! Colors +#define FOREGROUND #F8F8F2 +#define BACKGROUND #282A36 +#define BLACK1 #000000 +#define BLACK2 #4D4D4D +#define WHITE1 #E6E6E6 +#define WHITE2 #BFBFBF +#define RED1 #FF5555 +#define RED2 #FF6E67 +#define GREEN1 #50FA7B +#define GREEN2 #5AF78E +#define YELLOW1 #F1FA8C +#define YELLOW2 #F4F99D +#define PURPLE1 #BD93F9 +#define PURPLE2 #CAA9FA +#define PINK1 #FF79C6 +#define PINK2 #FF92D0 +#define CYAN1 #8BE9FD +#define CYAN2 #9AEDFE +#define ORANGE #FFB86C - ! Dracula Xresources Palette - ,*.foreground: FOREGROUND - ,*.background: BACKGROUND - ,*.color0: BLACK1 - ,*.color8: BLACK2 - ,*.color1: RED1 - ,*.color9: RED2 - ,*.color2: GREEN1 - ,*.color10: GREEN2 - ,*.color3: YELLOW1 - ,*.color11: YELLOW2 - ,*.color4: PURPLE1 - ,*.color12: PURPLE2 - ,*.color5: PINK1 - ,*.color13: PINK2 - ,*.color6: CYAN1 - ,*.color14: CYAN2 - ,*.color7: WHITE2 - ,*.color15: WHITE1 - ,*.color16: ORANGE +! Dracula Xresources Palette +,*.foreground: FOREGROUND +,*.background: BACKGROUND +,*.color0: BLACK1 +,*.color8: BLACK2 +,*.color1: RED1 +,*.color9: RED2 +,*.color2: GREEN1 +,*.color10: GREEN2 +,*.color3: YELLOW1 +,*.color11: YELLOW2 +,*.color4: PURPLE1 +,*.color12: PURPLE2 +,*.color5: PINK1 +,*.color13: PINK2 +,*.color6: CYAN1 +,*.color14: CYAN2 +,*.color7: WHITE2 +,*.color15: WHITE1 +,*.color16: ORANGE #+end_src *** Sizes *NOT IN USE* #+begin_src conf :tangle no - ! Regular DPI Parameters - #define DPI 96 - #define BAR_HEIGHT 25 - #define MODULE_MARGIN 2 - #define MODULE_PADDING 2 - #define TRAY_MAXSIZE 20 - #define TRAY_SCALE 1 - #define BORDER_SIZE 2 - #define INNER_GAPS 20 - #define OUTER_GAPS 10 - #define MAXLEN 75 - #define CURSOR_SIZE 16 +! Regular DPI Parameters +#define DPI 96 +#define BAR_HEIGHT 25 +#define MODULE_MARGIN 2 +#define MODULE_PADDING 2 +#define TRAY_MAXSIZE 20 +#define TRAY_SCALE 1 +#define BORDER_SIZE 2 +#define INNER_GAPS 20 +#define OUTER_GAPS 10 +#define MAXLEN 75 +#define CURSOR_SIZE 16 #+end_src #+begin_src conf :tangle .Xresources - ! System76 Oryx Pro 7 DPI Parameters - #define DPI 96 - #define BAR_HEIGHT 25 - #define MODULE_MARGIN 1 - #define MODULE_PADDING 2 - #define TRAY_MAXSIZE 20 - #define TRAY_SCALE 1 - #define BORDER_SIZE 2 - #define INNER_GAPS 20 - #define OUTER_GAPS 10 - #define MAXLEN 50 - #define CURSOR_SIZE 16 +! System76 Oryx Pro 7 DPI Parameters +#define DPI 96 +#define BAR_HEIGHT 25 +#define MODULE_MARGIN 1 +#define MODULE_PADDING 2 +#define TRAY_MAXSIZE 20 +#define TRAY_SCALE 1 +#define BORDER_SIZE 2 +#define INNER_GAPS 20 +#define OUTER_GAPS 10 +#define MAXLEN 50 +#define CURSOR_SIZE 16 #+end_src *NOT IN USE* #+begin_src conf :tangle no - ! HiDPI Parameters - #define DPI 192 - #define BAR_HEIGHT 50 - #define MODULE_MARGIN 1 - #define MODULE_PADDING 2 - #define TRAY_MAXSIZE 40 - #define TRAY_SCALE 1 - #define BORDER_SIZE 4 - #define INNER_GAPS 40 - #define OUTER_GAPS 20 - #define MAXLEN 45 - #define CURSOR_SIZE 32 +! HiDPI Parameters +#define DPI 192 +#define BAR_HEIGHT 50 +#define MODULE_MARGIN 1 +#define MODULE_PADDING 2 +#define TRAY_MAXSIZE 40 +#define TRAY_SCALE 1 +#define BORDER_SIZE 4 +#define INNER_GAPS 40 +#define OUTER_GAPS 20 +#define MAXLEN 45 +#define CURSOR_SIZE 32 #+end_src *** Application Specific Changes @@ -7171,59 +7189,59 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. **** dwm #+begin_src conf :tangle .Xresources - ! DWM - dwm.normbordercolor: BLACK2 - dwm.normbgcolor: BACKGROUND - dwm.normfgcolor: FOREGROUND - dwm.selbordercolor: PURPLE1 - dwm.selbgcolor: PURPLE1 - dwm.selfgcolor: BACKGROUND - dwm.borderpx: BORDER_SIZE - dwm.gappih: INNER_GAPS - dwm.gappiv: INNER_GAPS - dwm.gappoh: OUTER_GAPS - dwm.gappov: OUTER_GAPS +! DWM +dwm.normbordercolor: BLACK2 +dwm.normbgcolor: BACKGROUND +dwm.normfgcolor: FOREGROUND +dwm.selbordercolor: PURPLE1 +dwm.selbgcolor: PURPLE1 +dwm.selfgcolor: BACKGROUND +dwm.borderpx: BORDER_SIZE +dwm.gappih: INNER_GAPS +dwm.gappiv: INNER_GAPS +dwm.gappoh: OUTER_GAPS +dwm.gappov: OUTER_GAPS #+end_src **** Polybar #+begin_src conf :tangle .Xresources - ! Polybar - polybar.bar-height: BAR_HEIGHT - polybar.module-margin: MODULE_MARGIN - polybar.tray-maxsize: TRAY_MAXSIZE - polybar.tray-scale: TRAY_SCALE - polybar.maxlen: MAXLEN +! Polybar +polybar.bar-height: BAR_HEIGHT +polybar.module-margin: MODULE_MARGIN +polybar.tray-maxsize: TRAY_MAXSIZE +polybar.tray-scale: TRAY_SCALE +polybar.maxlen: MAXLEN #+end_src **** Dunst #+begin_src conf :tangle .Xresources - ! Dunst - dunst.geometry-x: 0 - dunst.geometry-y: BAR_HEIGHT - dunst.sep-height: BORDER_SIZE - dunst.padding: OUTER_GAPS - dunst.horiz-padding: OUTER_GAPS - dunst.max-icon-size: DPI - dunst.frame-width: BORDER_SIZE - dunst.low-background: BACKGROUND - dunst.low-foreground: FOREGROUND - dunst.low-frame: GREEN1 - dunst.normal-background: BACKGROUND - dunst.normal-foreground: FOREGROUND - dunst.normal-frame: GREEN1 - dunst.critical-background: RED1 - dunst.critical-foreground: FOREGROUND - dunst.critical-frame: GREEN1 +! Dunst +dunst.geometry-x: 0 +dunst.geometry-y: BAR_HEIGHT +dunst.sep-height: BORDER_SIZE +dunst.padding: OUTER_GAPS +dunst.horiz-padding: OUTER_GAPS +dunst.max-icon-size: DPI +dunst.frame-width: BORDER_SIZE +dunst.low-background: BACKGROUND +dunst.low-foreground: FOREGROUND +dunst.low-frame: GREEN1 +dunst.normal-background: BACKGROUND +dunst.normal-foreground: FOREGROUND +dunst.normal-frame: GREEN1 +dunst.critical-background: RED1 +dunst.critical-foreground: FOREGROUND +dunst.critical-frame: GREEN1 #+end_src **** Display Scaling #+begin_src conf :tangle .Xresources - ! Display Scaling - ,*.dpi: DPI - Xcursor.size: CURSOR_SIZE +! Display Scaling +,*.dpi: DPI +Xcursor.size: CURSOR_SIZE #+end_src * Miscellaneous Scripts @@ -7231,510 +7249,509 @@ Configuration for Alacritty, the GPU enhanced terminal emulator. ** Media Control #+begin_src shell :shebang #!/bin/bash :tangle .scripts/playerctl.sh - help_menu() { - echo "Script to interact with playerctl. Use only one argument at a time." - echo " - Play / Pause: playerctl.sh --play-pause" - echo " - Next: playerctl.sh --next" - echo " - Previous: playerctl.sh --prev" - echo " - Change Player: playerctl.sh --change" - echo " - Rofi Menu: playerctl.sh --rofi" - echo " - Help: playerctl.sh --help OR playerctl.sh -h" - } +help_menu() { + echo "Script to interact with playerctl. Use only one argument at a time." + echo " - Play / Pause: playerctl.sh --play-pause" + echo " - Next: playerctl.sh --next" + echo " - Previous: playerctl.sh --prev" + echo " - Change Player: playerctl.sh --change" + echo " - Rofi Menu: playerctl.sh --rofi" + echo " - Help: playerctl.sh --help OR playerctl.sh -h" +} - rofi_menu() { - declare -a options=( - "懶 Play / Pause - play-pause" - "怜 Next - next" - "玲 Previous - prev" - "﴾ Change Source - change" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + "懶 Play / Pause - play-pause" + "怜 Next - next" + "玲 Previous - prev" + "﴾ Change Source - change" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --play-pause) - playerctl --player=playerctld play-pause - ;; - --next) - playerctl --player=playerctld next - ;; - --prev) - playerctl --player=playerctld previous - ;; - --change) - playerctld shift - ;; - --rofi) - rofi_menu - ;; - esac - fi - } +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --play-pause) + playerctl --player=playerctld play-pause + ;; + --next) + playerctl --player=playerctld next + ;; + --prev) + playerctl --player=playerctld previous + ;; + --change) + playerctld shift + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src ** Volume Control #+begin_src shell :shebang #!/bin/bash :tangle .scripts/pactl.sh - help_menu() { - echo "Script to interact with pactl. Use only one argument at a time." - # echo " - Play / Pause: playerctl.sh --play-pause" - # echo " - Next: playerctl.sh --next" - # echo " - Previous: playerctl.sh --prev" - # echo " - Change Player: playerctl.sh --change" - # echo " - Rofi Menu: playerctl.sh --rofi" - # echo " - Help: playerctl.sh --help OR playerctl.sh -h" - } +help_menu() { + echo "Script to interact with pactl. Use only one argument at a time." + # echo " - Play / Pause: playerctl.sh --play-pause" + # echo " - Next: playerctl.sh --next" + # echo " - Previous: playerctl.sh --prev" + # echo " - Change Player: playerctl.sh --change" + # echo " - Rofi Menu: playerctl.sh --rofi" + # echo " - Help: playerctl.sh --help OR playerctl.sh -h" +} - rofi_menu() { - declare -a options=( - " Raise Volume - raise" - " Lower Volume - lower" - " Mute - mute" - "﴾ Mixer - mixer" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + " Raise Volume - raise" + " Lower Volume - lower" + " Mute - mute" + "﴾ Mixer - mixer" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --raise) - pactl set-sink-volume @DEFAULT_SINK@ +5% - ;; - --lower) - pactl set-sink-volume @DEFAULT_SINK@ -5% - ;; - --mute) - pactl set-sink-mute @DEFAULT_SINK@ toggle - ;; - --mixer) - pavucontrol - ;; - --rofi) - rofi_menu - ;; - esac - fi - } +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --raise) + pactl set-sink-volume @DEFAULT_SINK@ +5% + ;; + --lower) + pactl set-sink-volume @DEFAULT_SINK@ -5% + ;; + --mute) + pactl set-sink-mute @DEFAULT_SINK@ toggle + ;; + --mixer) + pavucontrol + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src ** Trackpad Control #+begin_src shell :shebang #!/bin/bash :tangle .scripts/trackpad.sh - trackpad_id=13 +trackpad_id=13 - if xinput list-props $trackpad_id | grep "Device Enabled (.*):.*1" >/dev/null - then - xinput disable $trackpad_id - notify-send -u low -i mouse "Trackpad disabled" - else - xinput enable $trackpad_id - notify-send -u low -i mouse "Trackpad enabled" - fi +if xinput list-props $trackpad_id | grep "Device Enabled (.*):.*1" >/dev/null +then + xinput disable $trackpad_id + notify-send -u low -i mouse "Trackpad disabled" +else + xinput enable $trackpad_id + notify-send -u low -i mouse "Trackpad enabled" +fi #+end_src ** System76 Power Control #+begin_src shell :shebang #!/bin/bash :tangle .scripts/system76-power.sh - help_menu() { - echo "Script to interact with system76-power. Use only one argument at a time." - # echo " - Play / Pause: playerctl.sh --play-pause" - # echo " - Next: playerctl.sh --next" - # echo " - Previous: playerctl.sh --prev" - # echo " - Change Player: playerctl.sh --change" - # echo " - Rofi Menu: playerctl.sh --rofi" - # echo " - Help: playerctl.sh --help OR playerctl.sh -h" - } +help_menu() { + echo "Script to interact with system76-power. Use only one argument at a time." + # echo " - Play / Pause: playerctl.sh --play-pause" + # echo " - Next: playerctl.sh --next" + # echo " - Previous: playerctl.sh --prev" + # echo " - Change Player: playerctl.sh --change" + # echo " - Rofi Menu: playerctl.sh --rofi" + # echo " - Help: playerctl.sh --help OR playerctl.sh -h" +} - rofi_menu() { - declare -a options=( - " Switchable Graphics - rofi-graphics" - " Performance Profile - rofi-profile" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + " Switchable Graphics - rofi-graphics" + " Performance Profile - rofi-profile" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - rofi_graphics_menu() { - declare -a options=( - "Query Current Graphics - graphics-query" - "Switch to Compute Mode - graphics-compute" - "Switch to Hybrid Mode - graphics-hybrid" - "Switch to Integrated Mode - graphics-integrated" - "Switch to Nvidia Mode - graphics-nvidia" - " Back - back" - " Quit - quit" - ) +rofi_graphics_menu() { + declare -a options=( + "Query Current Graphics - graphics-query" + "Switch to Compute Mode - graphics-compute" + "Switch to Hybrid Mode - graphics-hybrid" + "Switch to Integrated Mode - graphics-integrated" + "Switch to Nvidia Mode - graphics-nvidia" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi-graphics" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi-graphics" + fi +} - rofi_profile_menu() { - declare -a options=( - "Query Current Profile - profile-query" - "Switch to Battery Mode - profile-battery" - "Switch to Balanced Mode - profile-balanced" - "Switch to Performance Mode - profile-performance" - " Back - back" - " Quit - quit" - ) +rofi_profile_menu() { + declare -a options=( + "Query Current Profile - profile-query" + "Switch to Battery Mode - profile-battery" + "Switch to Balanced Mode - profile-balanced" + "Switch to Performance Mode - profile-performance" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi-profile" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi-profile" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --rofi-graphics) - rofi_graphics_menu - ;; - --graphics-query) - current_graphics=$(pkexec system76-power graphics) - notify-send "System76-Power Graphics" "$current_graphics" - ;; - --graphics-compute) - notify-send "System76-Power Graphics" "Switching to Compute Graphics..." - pkexec system76-power graphics compute - notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" - ;; - --graphics-hybrid) - notify-send "System76-Power Graphics" "Switching to Hybrid Graphics..." - pkexec system76-power graphics hybrid - notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" - ;; - --graphics-integrated) - notify-send "System76-Power Graphics" "Switching to Integrated Graphics..." - pkexec system76-power graphics integrated - notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" - ;; - --graphics-nvidia) - notify-send "System76-Power Graphics" "Switching to Nvidia Graphics..." - pkexec system76-power graphics nvidia - notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" - ;; - --rofi-profile) - rofi_profile_menu - ;; - --profile-query) - current_profile=$(pkexec system76-power profile) - notify-send "System76-Power Profile" "$current_profile" - ;; - --profile-battery) - pkexec system76-power profile battery - notify-send "System76-Power Profile" "Switched to Battery Profile" - ;; - --profile-balanced) - pkexec system76-power profile balanced - notify-send "System76-Power Profile" "Switched to Balanced Profile" - ;; - --profile-performance) - pkexec system76-power profile performance - notify-send "System76-Power Profile" "Switched to Performance Profile" - ;; - --rofi) - rofi_menu - ;; - esac - fi - } +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --rofi-graphics) + rofi_graphics_menu + ;; + --graphics-query) + current_graphics=$(pkexec system76-power graphics) + notify-send "System76-Power Graphics" "$current_graphics" + ;; + --graphics-compute) + notify-send "System76-Power Graphics" "Switching to Compute Graphics..." + pkexec system76-power graphics compute + notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" + ;; + --graphics-hybrid) + notify-send "System76-Power Graphics" "Switching to Hybrid Graphics..." + pkexec system76-power graphics hybrid + notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" + ;; + --graphics-integrated) + notify-send "System76-Power Graphics" "Switching to Integrated Graphics..." + pkexec system76-power graphics integrated + notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" + ;; + --graphics-nvidia) + notify-send "System76-Power Graphics" "Switching to Nvidia Graphics..." + pkexec system76-power graphics nvidia + notify-send -u critical -t 0 "System76-Power Graphics" "Please restart computer to switch graphics" + ;; + --rofi-profile) + rofi_profile_menu + ;; + --profile-query) + current_profile=$(pkexec system76-power profile) + notify-send "System76-Power Profile" "$current_profile" + ;; + --profile-battery) + pkexec system76-power profile battery + notify-send "System76-Power Profile" "Switched to Battery Profile" + ;; + --profile-balanced) + pkexec system76-power profile balanced + notify-send "System76-Power Profile" "Switched to Balanced Profile" + ;; + --profile-performance) + pkexec system76-power profile performance + notify-send "System76-Power Profile" "Switched to Performance Profile" + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src ** Session Control #+begin_src shell :shebang #!/bin/bash :tangle .scripts/session.sh - help_menu() { - echo "Script to interact with desktop session. Use only one argument at a time." - # echo " - Play / Pause: playerctl.sh --play-pause" - # echo " - Next: playerctl.sh --next" - # echo " - Previous: playerctl.sh --prev" - # echo " - Change Player: playerctl.sh --change" - # echo " - Rofi Menu: playerctl.sh --rofi" - # echo " - Help: playerctl.sh --help OR playerctl.sh -h" - } +help_menu() { + echo "Script to interact with desktop session. Use only one argument at a time." + # echo " - Play / Pause: playerctl.sh --play-pause" + # echo " - Next: playerctl.sh --next" + # echo " - Previous: playerctl.sh --prev" + # echo " - Change Player: playerctl.sh --change" + # echo " - Rofi Menu: playerctl.sh --rofi" + # echo " - Help: playerctl.sh --help OR playerctl.sh -h" +} - rofi_menu() { - declare -a options=( - "勒 Restart Dwm - restart" - " Logout - logout" - " Lock - lock" - "⏾ Sleep - sleep" - " Reboot - reboot" - " Shutdown - shutdown" - "鈴 Hibernate - hibernate" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + "勒 Restart Dwm - restart" + " Logout - logout" + " Lock - lock" + "⏾ Sleep - sleep" + " Reboot - reboot" + " Shutdown - shutdown" + "鈴 Hibernate - hibernate" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && killall rofi - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && killall rofi + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --logout) - notify-send "Session Control" "Logging Out of Dwm" - xdotool key Super+Shift_L+q - ;; - --lock) - notify-send "Session Control" "Locking Session" - loginctl lock-session - ;; - --sleep) - notify-send "Session Control" "Going to Sleep" - systemctl suspend - ;; - --reboot) - notify-send "Session Control" "Rebooting System" - reboot - ;; - --shutdown) - notify-send "Session Control" "Shutting Down System" - shutdown now - ;; - --hibernate) - notify-send "Session Control" "Hibernating System" - systemctl hibernate - ;; - --restart) - notify-send "Session Control" "Restarting Dwm" - xdotool key Super+Control_L+Shift_L+q - ;; - --rofi) - rofi_menu - ;; - esac - fi - } +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --logout) + notify-send "Session Control" "Logging Out of Dwm" + xdotool key Super+Shift_L+q + ;; + --lock) + notify-send "Session Control" "Locking Session" + loginctl lock-session + ;; + --sleep) + notify-send "Session Control" "Going to Sleep" + systemctl suspend + ;; + --reboot) + notify-send "Session Control" "Rebooting System" + reboot + ;; + --shutdown) + notify-send "Session Control" "Shutting Down System" + shutdown now + ;; + --hibernate) + notify-send "Session Control" "Hibernating System" + systemctl hibernate + ;; + --restart) + notify-send "Session Control" "Restarting Dwm" + xdotool key Super+Control_L+Shift_L+q + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src ** Startup #+begin_src shell :shebang #!/bin/bash :tangle .scripts/startup.sh - declare -a startup_array=(\ - # Background Processes - "bash /home/sravan/.scripts/deadd.sh --on" \ # Deadd Notification Center - "bash /home/sravan/.scripts/picom.sh --on" \ # Picom Compositor - "/usr/bin/greenclip daemon" \ # Greenclip Clipboard Manager - "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" \ # GNOME Polkit Authentication Agent - "/usr/bin/xss-lock -l -- betterlockscreen --lock" \ # Session Lock Utility - "/usr/lib/kdeconnectd --replace" \ # KDE Connect Daemon - "/usr/bin/redshift -x" \ # Redshift Blue Light Filter - ) +declare -a startup_array=(\ + # Background Processes + "bash /home/sravan/.scripts/deadd.sh --on" \ # Deadd Notification Center + "bash /home/sravan/.scripts/picom.sh --on" \ # Picom Compositor + "/usr/bin/greenclip daemon" \ # Greenclip Clipboard Manager + "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" \ # GNOME Polkit Authentication Agent + "/usr/bin/xss-lock -l -- betterlockscreen --lock" \ # Session Lock Utility + "/usr/lib/kdeconnectd --replace" \ # KDE Connect Daemon + "/usr/bin/redshift -x" \ # Redshift Blue Light Filter +) - declare -a kill_startup_array=(\ - # Background Processes - "killall deadd-notificat" \ # Deadd Notification Center - "killall picom" \ # Picom Compositor - "killall greenclip" \ # Greenclip Clipboard Manager - "killall polkit" \ # GNOME Polkit Authentication Agent - "killall xss-lock" \ # Session Lock Utility - "killall kdeconnectd" \ # KDE Connect Daemon - "killall redshift" \ # Redshift Blue Light Filter - ) +declare -a kill_startup_array=(\ + # Background Processes + "killall deadd-notificat" \ # Deadd Notification Center + "killall picom" \ # Picom Compositor + "killall greenclip" \ # Greenclip Clipboard Manager + "killall polkit" \ # GNOME Polkit Authentication Agent + "killall xss-lock" \ # Session Lock Utility + "killall kdeconnectd" \ # KDE Connect Daemon + "killall redshift" \ # Redshift Blue Light Filter +) - declare -a delay_array=(\ - # System Tray Applications - "/usr/bin/redshift-gtk" \ # Redshift Blue Light Filter - "/usr/bin/blueman-applet" \ # Blueman Bluetooth Manager - "/usr/bin/nm-applet" \ # Network Manager Applet - "/usr/bin/kdeconnect-indicator" \ # KDE Connect Indicator - "/usr/bin/flameshot" \ # Flameshot Screenshot Tool - "/usr/bin/xfce4-power-manager" \ # XFCE4 Power Manager - "/usr/bin/volctl" \ # PulseAudio Volume Control - "/usr/bin/nyrna" \ # Nyrna - # System Restore Processes - "/usr/bin/autorandr --change --force" \ # Auto restore screen layout - "/usr/bin/numlockx on" \ # Enable numlock - ) +declare -a delay_array=(\ + # System Tray Applications + "/usr/bin/redshift-gtk" \ # Redshift Blue Light Filter + "/usr/bin/blueman-applet" \ # Blueman Bluetooth Manager + "/usr/bin/nm-applet" \ # Network Manager Applet + "/usr/bin/kdeconnect-indicator" \ # KDE Connect Indicator + "/usr/bin/flameshot" \ # Flameshot Screenshot Tool + "/usr/bin/xfce4-power-manager" \ # XFCE4 Power Manager + "/usr/bin/volctl" \ # PulseAudio Volume Control + "/usr/bin/nyrna" \ # Nyrna + # System Restore Processes + "/usr/bin/autorandr --change --force" \ # Auto restore screen layout + "/usr/bin/numlockx on" \ # Enable numlock +) - declare -a kill_delay_array=(\ - # System Tray Applications - "killall redshift" \ # Redshift Blue Light Filter - "killall blueman-applet" \ # Blueman Bluetooth Manager - "killall nm-applet" \ # Network Manager Applet - "killall kdeconnect-indicator" \ # KDE Connect Indicator - "killall flameshot" \ # Flameshot Screenshot Tool - "killall xfce4-power-manager" \ # XFCE4 Power Manager - "killall volctl" \ # PulseAudio Volume Control - "killall nyrna" \ # Nyrna - ) +declare -a kill_delay_array=(\ + # System Tray Applications + "killall redshift" \ # Redshift Blue Light Filter + "killall blueman-applet" \ # Blueman Bluetooth Manager + "killall nm-applet" \ # Network Manager Applet + "killall kdeconnect-indicator" \ # KDE Connect Indicator + "killall flameshot" \ # Flameshot Screenshot Tool + "killall xfce4-power-manager" \ # XFCE4 Power Manager + "killall volctl" \ # PulseAudio Volume Control + "killall nyrna" \ # Nyrna +) +help_menu() { + echo "Main script to launch and kill startup processes. Use only one argument at a time." + # echo " - Play / Pause: playerctl.sh --play-pause" + # echo " - Next: playerctl.sh --next" + # echo " - Previous: playerctl.sh --prev" + # echo " - Change Player: playerctl.sh --change" + # echo " - Rofi Menu: playerctl.sh --rofi" + # echo " - Help: playerctl.sh --help OR playerctl.sh -h" +} - help_menu() { - echo "Main script to launch and kill startup processes. Use only one argument at a time." - # echo " - Play / Pause: playerctl.sh --play-pause" - # echo " - Next: playerctl.sh --next" - # echo " - Previous: playerctl.sh --prev" - # echo " - Change Player: playerctl.sh --change" - # echo " - Rofi Menu: playerctl.sh --rofi" - # echo " - Help: playerctl.sh --help OR playerctl.sh -h" - } +rofi_menu() { + declare -a options=( + " Launch Startup Processes - startup" + "羽 Launch Delayed Processes - delay" + " Kill Startup Processes - kill-startup" + " Kill Delayed Processes - kill-delay" + " Back - back" + " Quit - quit" + ) - rofi_menu() { - declare -a options=( - " Launch Startup Processes - startup" - "羽 Launch Delayed Processes - delay" - " Kill Startup Processes - kill-startup" - " Kill Delayed Processes - kill-delay" - " Back - back" - " Quit - quit" - ) + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --startup) + for i in "${startup_array[@]}" + do + if ! command -v $i > /dev/null + then + do_nothing() { :; } + else + $i & + fi + done + ;; + --delay) + for i in "${delay_array[@]}" + do + if ! command -v $i > /dev/null + then + do_nothing() { :; } + else + $i & + fi + done + ;; + --kill-startup) + for i in "${kill_startup_array[@]}" + do + if ! command -v $i > /dev/null + then + do_nothing() { :; } + else + $i & + fi + done + ;; + --kill-delay) + for i in "${kill_delay_array[@]}" + do + if ! command -v $i > /dev/null + then + do_nothing() { :; } + else + $i & + fi + done + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --startup) - for i in "${startup_array[@]}" - do - if ! command -v $i > /dev/null - then - do_nothing() { :; } - else - $i & - fi - done - ;; - --delay) - for i in "${delay_array[@]}" - do - if ! command -v $i > /dev/null - then - do_nothing() { :; } - else - $i & - fi - done - ;; - --kill-startup) - for i in "${kill_startup_array[@]}" - do - if ! command -v $i > /dev/null - then - do_nothing() { :; } - else - $i & - fi - done - ;; - --kill-delay) - for i in "${kill_delay_array[@]}" - do - if ! command -v $i > /dev/null - then - do_nothing() { :; } - else - $i & - fi - done - ;; - --rofi) - rofi_menu - ;; - esac - fi - } - - main $@ +main $@ #+end_src ** Gaming @@ -7746,7 +7763,7 @@ These are scripts that should be run from Lutris when launching or exiting a gam *Preferences > System options > Pre-launch script* #+begin_src shell :shebang #!/bin/bash :tangle .scripts/game_launch.sh - /home/sravan/.scripts/deadd.sh --pause +/home/sravan/.scripts/deadd.sh --pause #+end_src *** Post-Exit Script @@ -7754,83 +7771,83 @@ These are scripts that should be run from Lutris when launching or exiting a gam *Preferences > System options > Post-exit script* #+begin_src shell :shebang #!/bin/bash :tangle .scripts/game_exit.sh - /home/sravan/.scripts/deadd.sh --unpause +/home/sravan/.scripts/deadd.sh --unpause #+end_src ** Control Center #+begin_src shell :shebang #!/bin/bash :tangle .scripts/control-center.sh - help_menu() { - echo "Main script to launch sub-menu scripts. Use only one argument at a time." - # echo " - Play / Pause: playerctl.sh --play-pause" - # echo " - Next: playerctl.sh --next" - # echo " - Previous: playerctl.sh --prev" - # echo " - Change Player: playerctl.sh --change" - # echo " - Rofi Menu: playerctl.sh --rofi" - # echo " - Help: playerctl.sh --help OR playerctl.sh -h" - } +help_menu() { + echo "Main script to launch sub-menu scripts. Use only one argument at a time." + # echo " - Play / Pause: playerctl.sh --play-pause" + # echo " - Next: playerctl.sh --next" + # echo " - Previous: playerctl.sh --prev" + # echo " - Change Player: playerctl.sh --change" + # echo " - Rofi Menu: playerctl.sh --rofi" + # echo " - Help: playerctl.sh --help OR playerctl.sh -h" +} - rofi_menu() { - declare -a options=( - " Compositor - picom" - " Notifications - deadd" - " Media - playerctl" - "墳Volume - pactl" - " Startup Processes - startup" - " Hardware - system76-power" - " Power Menu - session" - " Back - back" - " Quit - quit" - ) +rofi_menu() { + declare -a options=( + " Compositor - picom" + " Notifications - deadd" + " Media - playerctl" + "墳Volume - pactl" + " Startup Processes - startup" + " Hardware - system76-power" + " Power Menu - session" + " Back - back" + " Quit - quit" + ) - choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) - option=$(printf '%s\n' "${choice}" | awk '{print $NF}') + choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i) + option=$(printf '%s\n' "${choice}" | awk '{print $NF}') - if [[ "$option" == "quit" ]]; then - kilall rofi - elif [[ "$option" != "back" ]]; then - main "--$option" && main "--rofi" - fi - } + if [[ "$option" == "quit" ]]; then + kilall rofi + elif [[ "$option" != "back" ]]; then + main "--$option" && main "--rofi" + fi +} - main() { - if [ $# -eq 0 ]; then - # No arguments - help_menu - else - case $1 in - --help | -h) - help_menu - ;; - --picom) - /home/sravan/.scripts/picom.sh --rofi - ;; - --deadd) - /home/sravan/.scripts/deadd.sh --rofi - ;; - --playerctl) - /home/sravan/.scripts/playerctl.sh --rofi - ;; - --pactl) - /home/sravan/.scripts/pactl.sh --rofi - ;; - --startup) - /home/sravan/.scripts/startup.sh --rofi - ;; - --system76-power) - /home/sravan/.scripts/system76-power.sh --rofi - ;; - --session) - /home/sravan/.scripts/session.sh --rofi - ;; - --rofi) - rofi_menu - ;; - esac - fi - } +main() { + if [ $# -eq 0 ]; then + # No arguments + help_menu + else + case $1 in + --help | -h) + help_menu + ;; + --picom) + /home/sravan/.scripts/picom.sh --rofi + ;; + --deadd) + /home/sravan/.scripts/deadd.sh --rofi + ;; + --playerctl) + /home/sravan/.scripts/playerctl.sh --rofi + ;; + --pactl) + /home/sravan/.scripts/pactl.sh --rofi + ;; + --startup) + /home/sravan/.scripts/startup.sh --rofi + ;; + --system76-power) + /home/sravan/.scripts/system76-power.sh --rofi + ;; + --session) + /home/sravan/.scripts/session.sh --rofi + ;; + --rofi) + rofi_menu + ;; + esac + fi +} - main $@ +main $@ #+end_src * Acknowledgements