commit fd733cd338f60f64cf13dd772019dc183f237e7d Author: Quinta <112334784+Quinta0@users.noreply.github.com> Date: Sat Mar 18 22:21:53 2023 +0100 Add files via upload diff --git a/Thunar/accels.scm b/Thunar/accels.scm new file mode 100644 index 0000000..2414cd4 --- /dev/null +++ b/Thunar/accels.scm @@ -0,0 +1,117 @@ +; thunar GtkAccelMap rc-file -*- scheme -*- +; this file is an automated accelerator map dump +; +; (gtk_accel_path "/ThunarActionManager/restore" "") +; (gtk_accel_path "/ThunarActionManager/undo" "z") +; (gtk_accel_path "/ThunarStandardView/select-all-files" "a") +; (gtk_accel_path "/ThunarStandardView/sort-by-dtime" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-last-modified" "") +; (gtk_accel_path "/ThunarStandardView/invert-selection" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-display-name" "") +; (gtk_accel_path "/ThunarActionManager/cut" "x") +; (gtk_accel_path "/ThunarActionManager/restore-show" "") +; (gtk_accel_path "/ThunarWindow/zoom-in" "KP_Add") +; (gtk_accel_path "/ThunarStandardView/sort-ascending" "") +; (gtk_accel_path "/ThunarWindow/empty-trash" "") +; (gtk_accel_path "/ThunarWindow/reload" "r") +; (gtk_accel_path "/ThunarWindow/toggle-image-preview" "") +; (gtk_accel_path "/ThunarActionManager/cut-2" "") +; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "") +; (gtk_accel_path "/ThunarActionManager/trash-delete" "Delete") +; (gtk_accel_path "/ThunarWindow/open-network" "") +; (gtk_accel_path "/ThunarActionManager/trash-delete-2" "KP_Delete") +; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") +; (gtk_accel_path "/ThunarActionManager/delete" "") +; (gtk_accel_path "/ThunarStandardView/set-default-app" "") +; (gtk_accel_path "/ThunarStandardView/back-alt" "BackSpace") +; (gtk_accel_path "/ThunarActionManager/open-in-new-tab" "p") +; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down") +; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10") +; (gtk_accel_path "/ThunarWindow/view-as-compact-list" "3") +; (gtk_accel_path "/ThunarWindow/about" "") +; (gtk_accel_path "/ThunarWindow/open-computer" "") +; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "") +; (gtk_accel_path "/ThunarWindow/open-file-system" "") +; (gtk_accel_path "/ThunarWindow/open-parent" "Up") +; (gtk_accel_path "/ThunarWindow/view-menu" "") +; (gtk_accel_path "/ThunarActionManager/copy" "c") +; (gtk_accel_path "/ThunarStandardView/properties" "Return") +; (gtk_accel_path "/ThunarStandardView/back" "Left") +; (gtk_accel_path "/ThunarWindow/sendto-menu" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") +; (gtk_accel_path "/ThunarActionManager/open-location" "") +; (gtk_accel_path "/ThunarWindow/bookmarks-menu" "") +; (gtk_accel_path "/ThunarWindow/reload-alt" "F5") +; (gtk_accel_path "/ThunarWindow/view-location-selector-buttons" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-size-in-bytes" "") +; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") +; (gtk_accel_path "/ThunarActionManager/copy-2" "Insert") +; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "minus") +; (gtk_accel_path "/ThunarWindow/cancel-search" "Escape") +; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s") +; (gtk_accel_path "/ThunarStandardView/rename" "F2") +; (gtk_accel_path "/ThunarStandardView/configure-columns" "") +; (gtk_accel_path "/ThunarStandardView/create-document" "") +; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "d") +; (gtk_accel_path "/ThunarActionManager/move-to-trash" "") +; (gtk_accel_path "/ThunarWindow/close-tab" "w") +; (gtk_accel_path "/ThunarWindow/view-side-pane-tree" "e") +; (gtk_accel_path "/ThunarActionManager/open" "o") +; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") +; (gtk_accel_path "/ThunarWindow/view-location-selector-entry" "") +; (gtk_accel_path "/ThunarWindow/open-recent" "") +; (gtk_accel_path "/ThunarWindow/open-home" "Home") +; (gtk_accel_path "/ThunarWindow/toggle-split-view" "F3") +; (gtk_accel_path "/ThunarWindow/open-templates" "") +; (gtk_accel_path "/ThunarWindow/open-location-alt" "d") +; (gtk_accel_path "/ThunarStandardView/create-folder" "n") +; (gtk_accel_path "/ThunarWindow/search" "f") +; (gtk_accel_path "/ThunarStandardView/sort-by-type" "") +; (gtk_accel_path "/ThunarActionManager/paste-2" "Insert") +; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal") +; (gtk_accel_path "/ThunarStandardView/duplicate" "") +; (gtk_accel_path "/ThunarWindow/remove-from-recent" "") +; (gtk_accel_path "/ThunarWindow/zoom-out" "KP_Subtract") +; (gtk_accel_path "/ThunarWindow/close-window" "q") +; (gtk_accel_path "/ThunarWindow/edit-menu" "") +; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b") +; (gtk_accel_path "/ThunarWindow/show-highlight" "") +; (gtk_accel_path "/ThunarWindow/contents" "F1") +; (gtk_accel_path "/ThunarWindow/preferences" "") +; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up") +; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "plus") +; (gtk_accel_path "/ThunarStandardView/toggle-sort-order" "") +; (gtk_accel_path "/ThunarActionManager/open-in-new-window" "o") +; (gtk_accel_path "/ThunarWindow/view-configure-toolbar" "") +; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "") +; (gtk_accel_path "/ThunarWindow/view-statusbar" "") +; (gtk_accel_path "/ThunarWindow/close-all-windows" "w") +; (gtk_accel_path "/ThunarWindow/open-trash" "") +; (gtk_accel_path "/ThunarActionManager/paste" "v") +; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete") +; (gtk_accel_path "/ThunarActionManager/execute" "") +; (gtk_accel_path "/ThunarWindow/open-desktop" "") +; (gtk_accel_path "/ThunarActionManager/open-with-other" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-size" "") +; (gtk_accel_path "/ThunarActionManager/sendto-desktop" "") +; (gtk_accel_path "/ThunarWindow/open-location" "l") +; (gtk_accel_path "/ThunarWindow/view-menubar" "m") +; (gtk_accel_path "/ThunarWindow/zoom-reset-alt" "0") +; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2") +; (gtk_accel_path "/ThunarWindow/view-as-icons" "1") +; (gtk_accel_path "/ThunarWindow/new-window" "n") +; (gtk_accel_path "/ThunarStandardView/forward" "Right") +; (gtk_accel_path "/ThunarActionManager/redo" "z") +; (gtk_accel_path "/ThunarStandardView/sort-descending" "") +; (gtk_accel_path "/ThunarWindow/file-menu" "") +; (gtk_accel_path "/ThunarStandardView/make-link" "") +; (gtk_accel_path "/ThunarActionManager/delete-2" "Delete") +; (gtk_accel_path "/ThunarWindow/new-tab" "t") +; (gtk_accel_path "/ThunarWindow/go-menu" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-size" "") +; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "") +; (gtk_accel_path "/ThunarWindow/show-hidden" "h") +; (gtk_accel_path "/ThunarStandardView/sort-by-name" "") +; (gtk_accel_path "/ThunarWindow/zoom-reset" "KP_0") +; (gtk_accel_path "/ThunarStatusBar/toggle-filetype" "") +; (gtk_accel_path "/ThunarWindow/detach-tab" "") diff --git a/Thunar/uca.xml b/Thunar/uca.xml new file mode 100644 index 0000000..52a5127 --- /dev/null +++ b/Thunar/uca.xml @@ -0,0 +1,13 @@ + + + + utilities-terminal + Open Terminal Here + 1670685745741788-1 + exo-open --working-directory %f --launch TerminalEmulator + Example for a custom action + * + + + + diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml new file mode 100644 index 0000000..957315f --- /dev/null +++ b/alacritty/alacritty.yml @@ -0,0 +1,811 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Import additional configuration files +# +# Imports are loaded in order, skipping all missing files, with the importing +# file being loaded last. If a field is already present in a previous import, it +# will be replaced. +# +# All imports must either be absolute paths starting with `/`, or paths relative +# to the user's home directory starting with `~/`. +#import: +# - /path/to/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 + +window: + # Window dimensions (changes require restart) + # + # Number of lines/columns (not pixels) in the terminal. The number of columns + # must be at least `2`, while using a value of `0` for columns and lines will + # fall back to the window manager's recommended size. + #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 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: 6 + y: 5 + + # Spread additional padding evenly around the terminal content. + dynamic_padding: true + + # 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 and 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 + + # Window title + #title: Alacritty + + # Allow terminal applications to change Alacritty's window title. + #dynamic_title: true + + # 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 + +#scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + #history: 10000 + + # Scrolling distance multiplier. + #multiplier: 3 + +# Font configuration +font: + + + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + family: Source Code Pro + size: 14.0 + + # 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: monospace + + # 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 + + # 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 + + # The `style` can be specified to pick a specific face. + #style: Bold Italic + + # Point size + size: 9.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 upward. + #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`. + #use_thin_strokes: true + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: false + + +colors: + primary: + background: '0x282828' + foreground: '0xdfbf8e' + + normal: + black: '0x665c54' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe78a4e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + + bright: + black: '0x928374' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe3a84e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + + # Line indicator + # + # Color used for the indicator displaying the position in history during + # search and vi mode. + # + # By default, these will use the opposing primary color. + #line_indicator: + # foreground: None + # background: None + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Normal colors + #normal: + # black: '#1d1f21' + # red: '#cc6666' + # green: '#b5bd68' + # yellow: '#f0c674' + # blue: '#81a2be' + # magenta: '#b294bb' + # cyan: '#8abeb7' + # white: '#c5c8c6' + + # Bright colors + #bright: + # black: '#666666' + # red: '#d54e53' + # green: '#b9ca4a' + # yellow: '#e7c547' + # blue: '#7aa6da' + # magenta: '#c397d8' + # cyan: '#70c0b1' + # white: '#eaeaea' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '#131415' + # red: '#864343' + # green: '#777c44' + # yellow: '#9e824c' + # blue: '#556a7d' + # magenta: '#75617b' + # cyan: '#5b7d78' + # white: '#828482' + + # 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: '#ff00ff' }` + # + #indexed_colors: [] + +# Bell +# +# 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 + + # 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' + + # 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 + +# 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. + +#selection: + # This string contains all characters that are used as separators for + # "semantic words" in Alacritty. + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +cursor: + # Cursor style + style: + # Cursor shape + # + # Values for `shape`: + # - ▇ Block + # - _ Underline + # - | Beam + shape: Block + + # Cursor blinking state + # + # Values for `blinking`: + # - Never: Prevent the cursor from ever blinking + # - Off: Disable blinking by default + # - On: Enable blinking by default + # - Always: Force the cursor to always blink + #blinking: Off + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + #vi_mode_style: None + + # Cursor blinking interval in milliseconds. + #blink_interval: 750 + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + #thickness: 0.15 + +# Live config reload (changes require restart) +#live_config_reload: true + +# 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/zsh +# args: +# - --login + +# 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 + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +#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 + +# 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 + +# 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 } + +# 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 +# +# - ToggleViMode +# - SearchForward +# Start searching toward the right of the search origin. +# - SearchBackward +# Start searching toward the left of the search origin. +# - Copy +# - Paste +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollHalfPageUp +# - ScrollHalfPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# Remove the terminal's scrollback history. +# - Hide +# Hide the Alacritty window. +# - Minimize +# Minimize the Alacritty window. +# - Quit +# Quit Alacritty. +# - ToggleFullscreen +# - SpawnNewInstance +# Spawn a new instance of Alacritty. +# - ClearLogNotice +# Clear Alacritty's UI warning and error notice. +# - ClearSelection +# Remove the active selection. +# - ReceiveChar +# - None +# +# - Vi mode exclusive actions: +# +# - Open +# Perform the action of the first matching hint under the vi mode cursor +# with `mouse.enabled` set to `true`. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# +# - Vi mode exclusive cursor motion actions: +# +# - Up +# One line up. +# - Down +# One line down. +# - Left +# One character left. +# - Right +# One character right. +# - First +# First column, or beginning of the line when already at the first column. +# - Last +# Last column, or beginning of the line when already at the last column. +# - FirstOccupied +# First non-empty cell in this terminal row, or first non-empty cell of +# the line when already at the first cell of the row. +# - High +# Top of the screen. +# - Middle +# Center of the screen. +# - Low +# Bottom of the screen. +# - SemanticLeft +# Start of the previous semantically separated word. +# - SemanticRight +# Start of the next semantically separated word. +# - SemanticLeftEnd +# End of the previous semantically separated word. +# - SemanticRightEnd +# End of the next semantically separated word. +# - WordLeft +# Start of the previous whitespace separated word. +# - WordRight +# Start of the next whitespace separated word. +# - WordLeftEnd +# End of the previous whitespace separated word. +# - WordRightEnd +# End of the next whitespace separated word. +# - Bracket +# Character matching the bracket at the cursor's location. +# - SearchNext +# Beginning of the next match. +# - SearchPrevious +# Beginning of the previous match. +# - SearchStart +# Start of the match to the left of the vi mode cursor. +# - SearchEnd +# End of the match to the right of the vi mode cursor. +# +# - Search mode exclusive actions: +# - SearchFocusNext +# Move the focus to the next search match. +# - SearchFocusPrevious +# Move the focus to the previous search match. +# - SearchConfirm +# - SearchCancel +# - SearchClear +# Reset the search regex. +# - SearchDeleteWord +# Delete the last word in the search regex. +# - SearchHistoryPrevious +# Go to the previous regex in the search history. +# - SearchHistoryNext +# Go to the next regex in the search history. +# +# - macOS exclusive actions: +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# - Linux/BSD exclusive actions: +# +# - CopySelection +# Copy from the selection buffer. +# - PasteSelection +# Paste from the selection buffer. +# +# - `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 +# - Search +# - Alt +# - Vi +# +# 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 +# in the order they were defined in. +#key_bindings: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } + #- { key: G, mode: Vi|~Search, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi|~Search, action: Copy } + #- { key: Y, mode: Vi|~Search, action: ClearSelection } + #- { key: Copy, mode: Vi|~Search, action: ClearSelection } + #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi|~Search, action: Open } + #- { key: K, mode: Vi|~Search, action: Up } + #- { key: J, mode: Vi|~Search, action: Down } + #- { key: H, mode: Vi|~Search, action: Left } + #- { key: L, mode: Vi|~Search, action: Right } + #- { key: Up, mode: Vi|~Search, action: Up } + #- { key: Down, mode: Vi|~Search, action: Down } + #- { key: Left, mode: Vi|~Search, action: Left } + #- { key: Right, mode: Vi|~Search, action: Right } + #- { key: Key0, mode: Vi|~Search, action: First } + #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last } + #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi|~Search, action: High } + #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle } + #- { key: L, mods: Shift, mode: Vi|~Search, action: Low } + #- { key: B, mode: Vi|~Search, action: SemanticLeft } + #- { key: W, mode: Vi|~Search, action: SemanticRight } + #- { key: E, mode: Vi|~Search, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight } + #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket } + #- { key: Slash, mode: Vi|~Search, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward } + #- { key: N, mode: Vi|~Search, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious } + + # Search Mode + #- { key: Return, mode: Search|Vi, action: SearchConfirm } + #- { key: Escape, mode: Search, action: SearchCancel } + #- { key: C, mods: Control, mode: Search, action: SearchCancel } + #- { key: U, mods: Control, mode: Search, action: SearchClear } + #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord } + #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious } + #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext } + #- { key: Up, mode: Search, action: SearchHistoryPrevious } + #- { key: Down, mode: Search, action: SearchHistoryNext } + #- { key: Return, mode: Search|~Vi, action: SearchFocusNext } + #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward } + #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Plus, mods: Control, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Plus, mods: Command, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: H, mods: Command|Alt, action: HideOtherApplications } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: SpawnNewInstance } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - Off + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false +window: + opacity: 1.0 diff --git a/cava/config b/cava/config new file mode 100644 index 0000000..f79236e --- /dev/null +++ b/cava/config @@ -0,0 +1,183 @@ +## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal +;mode = scientific + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 0 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. + sensitivity = 75 + +# The number of bars (0-200). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. + bars = 200 +; bar_width = 2 +; bar_spacing = 1 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' +# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +; method = pulse +; source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo +; sample_rate = 44100 +; sample_bits = 16 + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + + +[output] + +# Output method. Can be 'ncurses', 'noncurses' or 'raw'. +# 'noncurses' uses a custom framebuffer technique and draws only changes +# from frame to frame. 'ncurses' is default if supported +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. + method = ncurses + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. + channels = stereo +; mono_option = average + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + + + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. +# if supported, ncurses mode will be forced on if user defined colors are used. +# default is to keep current terminal color +background = default +foreground = '#fbf1c7' + +# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen + +gradient = 1 + +gradient_color_1 = '#eeeeee' +gradient_color_2 = '#ccc5b7' +gradient_color_3 = '#847f79' +gradient_color_4 = '#937b73' +gradient_color_5 = '#957064' +gradient_color_6 = '#df8746' +gradient_color_7 = '#dc7244' +gradient_color_8 = '#c46b3c' +gradient_color_9 = '#dc4b4c' +gradient_color_10 ='#60837c' + +#eeeeee +#dee2e1 +#ced6d5 +#bfcac8 +#afbebb +#9fb3af +#8fa7a2 +#809b95 +#708f89 +#60837c + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +# integral = 32 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +# monstercat = 1 +# waves = 1 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". + gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +; ignore = 0 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more then one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +# 1 = 1 # bass +# 2 = 1 +# 3 = 1 # midtone +# 4 = 1 +# 5 = 1 # treble + +# 6 = 1 +# 7 = 1 + diff --git a/conky/Gotham/Bioshock2.cmtheme b/conky/Gotham/Bioshock2.cmtheme new file mode 100644 index 0000000..84f381e --- /dev/null +++ b/conky/Gotham/Bioshock2.cmtheme @@ -0,0 +1,3 @@ +~/.conky/Bioshock2/Hermoso_Rc +~/.conky/Bioshock2/wallpaper.jpg +wallpaper-scaling:scaled diff --git a/conky/Gotham/Gotham b/conky/Gotham/Gotham new file mode 100644 index 0000000..0862078 --- /dev/null +++ b/conky/Gotham/Gotham @@ -0,0 +1,49 @@ +#Conky By Jesse Avalos See me on Eye candy Linux (Google +) for more conkys. +background yes +update_interval 1 + +cpu_avg_samples 2 +net_avg_samples 2 +temperature_unit celsius + +double_buffer yes +no_buffers yes +text_buffer_size 2048 +alignment top_middle +gap_x -50 +gap_y 85 +minimum_size 550 550 +maximum_width 550 +own_window yes +own_window_type normal +own_window_transparent yes +own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager +own_window_argb_visual yes +own_window_argb_value 0 + +border_inner_margin 0 +border_outer_margin 0 + + +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_shade_color 112422 + +override_utf8_locale yes +use_xft yes +xftfont Feena Casual:size=10 +xftalpha 1 +uppercase yes + +default_color D6D5D4 +#E87E3C +own_window_colour 000000 +TEXT + + +${font Anurati:size=75}${color D6D5D4}${time %A}#${color yellow} + + + diff --git a/conky/Gotham/Gotham.jpg b/conky/Gotham/Gotham.jpg new file mode 100644 index 0000000..a7d85c1 Binary files /dev/null and b/conky/Gotham/Gotham.jpg differ diff --git a/conky/Gotham/lol b/conky/Gotham/lol new file mode 100644 index 0000000..4bab5c5 --- /dev/null +++ b/conky/Gotham/lol @@ -0,0 +1,45 @@ +use_xft yes +xftfont 123:size=8 +xftalpha 0.1 +update_interval 1 +total_run_times 0 + +own_window yes +own_window_type override +background yes +own_window_transparent yes +own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager +own_window_colour 000000 +own_window_argb_visual no +own_window_argb_value 0 + +double_buffer yes +#minimum_size 250 5 +#maximum_width 500 +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_color white +default_shade_color red +default_outline_color green +alignment top_right +gap_x 0 +gap_y 20 +no_buffers yes +uppercase no +cpu_avg_samples 2 +net_avg_samples 1 +override_utf8_locale yes +use_spacer yes + + +minimum_size 0 0 +TEXT +${voffset 10}${color EAEAEA}${font GE Inspira:pixelsize=120}${time %I:%M}${font}${voffset -84}${offset 10}${color FFA300}${font GE Inspira:pixelsize=42}${time %d} ${voffset -15}${color EAEAEA}${font GE Inspira:pixelsize=22}${time %B} ${time %Y}${font}${voffset 24}${font GE Inspira:pixelsize=58}${offset -148}${time %A}${font} +${voffset 1}${offset 12}${font Ubuntu:pixelsize=12}${color FFA300}HD ${offset 9}$color${fs_free /} / ${fs_size /}${offset 30}${color FFA300}RAM ${offset 9}$color$mem / $memmax${offset 30}${color FFA300}CPU ${offset 9}$color${cpu cpu0}% + + + + + diff --git a/conky/Gotham/source.txt b/conky/Gotham/source.txt new file mode 100644 index 0000000..d69d643 --- /dev/null +++ b/conky/Gotham/source.txt @@ -0,0 +1 @@ +http://psyjunta.deviantart.com/art/Gotham-Conky-config-205465419 diff --git a/conky/config.conf b/conky/config.conf new file mode 100644 index 0000000..c1296a2 --- /dev/null +++ b/conky/config.conf @@ -0,0 +1,162 @@ +### Neuromask connky config + +conky.config = { + +-- COLORS + +color1 = '0db9d7', -- Debian Red +color2 = 'fa7ef8', -- Tan 1 +color3 = 'ede410', -- Orange + +--set to = true if you want Conky to be forked in the background +background = false, -- set to false when editing for errors + +own_window = true, +own_window_type = 'override', +own_window_transparent = true, +own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', +own_window_argb_visual = true, +own_window_argb_value = 128, +out_to_console = false, +use_xft = true, + +font = 'Hack:size=9:antialias=true', +font2 = 'Hack:size=10:antialias=true', +font3 = 'Hack:size=8:antialias=true', +update_interval = 1, + +--This is the number of times Conky will update before quitting +--Set to zero to run forever. +--total_run_times 0 + +--Create own window instead of using desktop (required in nautilus) +own_window = true, + +--Use double buffering (reduces flicker, may not work for everyone) +double_buffer = true, +maximum_width = 320, + +draw_shades = false, + +--Draw outlines? +draw_outline = false, + +--Draw borders around text +draw_borders = false, + +--Stippled borders? +stippled_borders = 1, + +--border width +border_width = 20, + +--Default colors and also border colors +default_color = 'white', +default_shade_color = 'white', +default_outline_color = 'white', + +--Text alignment, other possible values are commented +alignment = 'top_right', + +--Gap between borders of screen and text +gap_x = 48, +gap_y = 64, + +--Add spaces to keep things from moving about? This only affects certain objects. +use_spacer = 'left', + +--Subtract file system buffers from used memory? +no_buffers = true, +--no_buffers = false, + +--set to = true if you want all text to be in uppercase +uppercase = false, + +default_bar_width = 140, +default_bar_height = 6 +} + +conky.text = [[ +${alignc}${font Hack:size=64}${color3}${time %R}${font} +${alignc}${font Hack:size=16}${color3}${execi 300 date +"%x"}${color} ${time %A}${font} + +# +### WEATHER +# +${color1}${stippled_hr}${color} +${font2}${color1}WEATHER${font} +${color3}${texeci 900 curl -s wttr.in/Tallinn?format=%l:+%C+%t+%w+%p}${color} +${texeci 900 curl -s wttr.in/Moscow?format=%l:+%C+%t+%w+%p} +${texeci 900 curl -s wttr.in/London?format=%l:+%C+%t+%w+%p} + +# +### NET +# +${color1}${stippled_hr}${color} +${font2}${color1}ID/NET$color${alignr}$sysname ${color3}$kernel$color ${machine}${font} +${color3}${execi 9000 whoami}$color @ $nodename ${alignr}Desktop ${color3}${desktop}$color of ${desktop_number} + +BCST:${color3}${texeci 60 curl -s https://icanhazip.com}$color ${alignr}${wireless_mode wlo1} BASE +MAC :${COLOR3}${wireless_ap wlo1}$COLOR ${alignr}${COLOR3}${wireless_essid wlo1}$COLOR + +${color3}WiFi:$color${addr wlo1} ${alignr}${color3}SIG:$color${wireless_link_qual_perc wlo1} % +${color black}${upspeedgraph wlo1 24, 150 f FFA500}$color ${color black}$alignr${downspeedgraph wlo1 24, 150 000000 FFA500}$color +UP:${color3} ${upspeed wlo1}/s$color ${alignr}${color3}${downspeed wlo1}/s$color :DN +${if_match "${addr enp10s0}"!="No Address"} +ETH0:${addr enp10s0} ${alignr}${color3}SPD:$color${downspeedf enp10s0}kB/s +${color black}${upspeedgraph enp10s0 24, 150 000000 FFA500}$color ${color black}$alignr${downspeedgraph enp10s0 24, 150 000000 FFA500}$color +UP:${color3} ${upspeed enp10s0}/s$color ${alignr}${color3}${downspeed enp10s0}/s$color :DN +${else}${endif} +# +### CPU +# +${color1}$stippled_hr$color +${font2}${color1}CPU ${color} ${alignr}${execi 300 grep -i 'Model name' /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'| uniq | cut -c 1-18} @ ${color3}${freq_g} GHz$color${font} + +Cores ▼ +${alignc}01 ${color3}${cpubar cpu1 6,50}$color 02 ${color3}${cpubar cpu2 6,50}$color 03 ${color3}${cpubar cpu3 6,50}$color 04 ${color3}${cpubar cpu4 6,50}$color +${alignc}05 ${color3}${cpubar cpu5 6,50}$color 06 ${color3}${cpubar cpu6 6,50}$color 07 ${color3}${cpubar cpu7 6,50}$color 08 ${color3}${cpubar cpu8 6,50}$color +${alignc}09 ${color3}${cpubar cpu9 6,50}$color 10 ${color3}${cpubar cpu10 6,50}$color 11 ${color3}${cpubar cpu11 6,50}$color 12 ${color3}${cpubar cpu12 6,50}$color +${alignc}13 ${color3}${cpubar cpu13 6,50}$color 14 ${color3}${cpubar cpu14 6,50}$color 15 ${color3}${cpubar cpu15 6,50}$color 16 ${color3}${cpubar cpu16 6,50}$color +${alignc}17 ${color3}${cpubar cpu17 6,50}$color 18 ${color3}${cpubar cpu18 6,50}$color 19 ${color3}${cpubar cpu19 6,50}$color 20 ${color3}${cpubar cpu20 6,50}$color +${alignc}21 ${color3}${cpubar cpu21 6,50}$color 22 ${color3}${cpubar cpu22 6,50}$color 23 ${color3}${cpubar cpu23 6,50}$color 24 ${color3}${cpubar cpu24 6,50}$color + +Usage: ${color3}${cpu cpu0}%${color} ${alignr}Fan: ${color3}${execi 10 sensors | grep 'Fan'|tr -s ' '|cut -d' ' -f3,4}${color} +${color3}${cpubar cpu0 6,155}${color} ${alignr}Temp: ${color3}${acpitemp} °C${color} +$alignc${color black}${cpugraph 24,320 000000 FFA500}$color +# +### GPU +# + +# +### RAM STORAGE +# +${color1}$stippled_hr$color +${font2}${color1}MEM / HDD / IO$color ${alignr}${font} + +${color3}Memory$color +RAM ${color3}${membar 5,100}$color ${alignr}${mem}/${memmax} +${color3}Internal Storage$color +/ ${color3}${fs_bar 5,100 /}$color ${alignr}${fs_used /}/${fs_size /} +Home ${color3}${fs_bar 5,100 /home/}$color ${alignr}${fs_used /home/}/${fs_size /home/} + +# +### USAGE +# +${color1}$stippled_hr$color +${color1}USAGE$color ${alignr}${color3}Uptime:${color} $uptime_short +${color3}Proc${color}${processes}${alignc} | ${color3}Running${color}${running_processes} | ${alignr}${color3}Avg:${color} $loadavg + +${font3}By CPU MEM CPU% ${alignr}USER PID + ${color3}${top name 1} ${top mem_res 1}${top cpu 1} $alignr${top user 1} ${top pid 1}$color + ${top name 2} ${top mem_res 2}${top cpu 2} $alignr ${top user 2} ${top pid 2} + ${top name 3} ${top mem_res 3}${top cpu 3} $alignr ${top user 3} ${top pid 3} +By MEM MEM CPU% ${alignr}USER PID + ${color3}${top_mem name 1} ${top_mem mem_res 1}${top_mem cpu 1} $alignr ${top_mem user 1} ${top_mem pid 1}$color + ${top_mem name 2} ${top_mem mem_res 2}${top_mem cpu 2} $alignr ${top_mem user 2} ${top_mem pid 2} + ${top_mem name 3} ${top_mem mem_res 3}${top_mem cpu 3} $alignr ${top_mem user 3} ${top_mem pid 3} +By I/O MEM CPU% ${alignr}USER PID + ${color3}${top_io name 1} ${top_io mem_res 1}${top_io cpu 1} $alignr ${top_io user 1} ${top_io pid 1}$color + ${top_io name 2} ${top_io mem_res 2}${top_io cpu 2} $alignr ${top_io user 2} ${top_io pid 2} + ${top_io name 3} ${top_io mem_res 3}${top_io cpu 3} $alignr ${top_io user 3} ${top_io pid 3}${font} +]] diff --git a/conky/conky.conf.old b/conky/conky.conf.old new file mode 100644 index 0000000..edcb371 --- /dev/null +++ b/conky/conky.conf.old @@ -0,0 +1,88 @@ +-- vim: ts=4 sw=4 noet ai cindent syntax=lua +--[[ +Conky, a system monitor, based on torsmo + +Any original torsmo code is licensed under the BSD license + +All code written since the fork of torsmo is licensed under the GPL + +Please see COPYING for details + +Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen +Copyright (c) 2005-2012 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 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 = { + alignment = 'top_left', + background = true, + own_window = true, + own_window_type = 'override', + own_window_class = Conky, + double_buffer = true, + own_window_transparent = true, + border_width = 1, + cpu_avg_samples = 2, + default_color = 'white', + default_outline_color = 'white', + default_shade_color = 'white', + draw_borders = false, + draw_graph_borders = true, + draw_outline = false, + draw_shades = false, + use_xft = true, + font = 'DejaVu Sans Mono:size=12', + gap_x = 5, + gap_y = 60, + minimum_height = 5, + minimum_width = 5, + net_avg_samples = 2, + no_buffers = true, + out_to_console = false, + out_to_stderr = false, + extra_newline = false, + own_window = true, + own_window_class = 'Conky', + own_window_type = 'desktop', + stippled_borders = 0, + update_interval = 1.0, + uppercase = false, + use_spacer = 'none', + show_graph_scale = false, + show_graph_range = false +} + +conky.text = [[ +${scroll 16 $nodename - $sysname $kernel on $machine | } +$hr +${color grey}Uptime:$color $uptime +${color grey}Frequency (in MHz):$color $freq +${color grey}Frequency (in GHz):$color $freq_g +${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} +${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} +${color grey}CPU Usage:$color $cpu% ${cpubar 4} +${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes +$hr +${color grey}File systems: + / $color${fs_used /}/${fs_size /} ${fs_bar 6 /} +${color grey}Networking: +Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0} +$hr +${color grey}Name PID CPU% MEM% +${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} +${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} +${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} +${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} +]] diff --git a/conky/conkyrc.working.bak b/conky/conkyrc.working.bak new file mode 100644 index 0000000..28ce1da --- /dev/null +++ b/conky/conkyrc.working.bak @@ -0,0 +1,85 @@ +-- vim: ts=4 sw=4 noet ai cindent syntax=lua +--[[ +Conky, a system monitor, based on torsmo + +Any original torsmo code is licensed under the BSD license + +All code written since the fork of torsmo is licensed under the GPL + +Please see COPYING for details + +Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen +Copyright (c) 2005-2012 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 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 = { + alignment = 'top_left', + background = true, + own_window = true, + own_window_type = 'override', + own_window_class = 'Conky', + double_buffer = true, + own_window_transparent = true, + border_width = 1, + cpu_avg_samples = 2, + default_color = 'white', + default_outline_color = 'white', + default_shade_color = 'white', + draw_borders = false, + draw_graph_borders = true, + draw_outline = false, + draw_shades = false, + use_xft = true, + font = 'DejaVu Sans Mono:size=12', + gap_x = 5, + gap_y = 60, + minimum_height = 5, + minimum_width = 5, + net_avg_samples = 2, + no_buffers = true, + out_to_console = false, + out_to_stderr = false, + extra_newline = false, + stippled_borders = 0, + update_interval = 1.0, + uppercase = false, + use_spacer = 'none', + show_graph_scale = false, + show_graph_range = false +} + +conky.text = [[ +${scroll 16 $nodename - $sysname $kernel on $machine | } +$hr +${color grey}Uptime:$color $uptime +${color grey}Frequency (in MHz):$color $freq +${color grey}Frequency (in GHz):$color $freq_g +${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} +${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} +${color grey}CPU Usage:$color $cpu% ${cpubar 4} +${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes +$hr +${color grey}File systems: + / $color${fs_used /}/${fs_size /} ${fs_bar 6 /} +${color grey}Networking: +Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0} +$hr +${color grey}Name PID CPU% MEM% +${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} +${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} +${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} +${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} +]] diff --git a/conky/gotham.conf b/conky/gotham.conf new file mode 100644 index 0000000..2159777 --- /dev/null +++ b/conky/gotham.conf @@ -0,0 +1,49 @@ +#Conky By Jesse Avalos See me on Eye candy Linux (Google +) for more conkys. +background yes +update_interval 1 + +cpu_avg_samples 2 +net_avg_samples 2 +temperature_unit celsius + +double_buffer yes +no_buffers yes +text_buffer_size 2048 +alignment top_middle +gap_x -50 +gap_y 300 +minimum_size 550 550 +maximum_width 550 +own_window yes +own_window_type override +own_window_transparent yes +own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager +own_window_argb_visual yes +own_window_argb_value 0 + +border_inner_margin 0 +border_outer_margin 0 + + +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_shade_color 112422 + +override_utf8_locale yes +use_xft yes +xftfont Feena Casual:size=10 +xftalpha 1 +uppercase yes + +default_color fbf1c7 +#E87E3C +own_window_colour 000000 +TEXT + + +${font Anurati:size=75}${color fbf1c7}${time %A}#${color yellow} + + + diff --git a/conky/gotham.orig b/conky/gotham.orig new file mode 100644 index 0000000..99a5c65 --- /dev/null +++ b/conky/gotham.orig @@ -0,0 +1,45 @@ +use_xft yes +xftfont 123:size=8 +xftalpha 0.1 +update_interval 1 +total_run_times 0 + +own_window yes +own_window_type override +background yes +own_window_transparent yes +own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager +own_window_colour 000000 +own_window_argb_visual no +own_window_argb_value 0 + +double_buffer yes +#minimum_size 250 5 +maximum_width 600 +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_color white +default_shade_color red +default_outline_color green +alignment top_right +gap_x 0 +gap_y 20 +no_buffers yes +uppercase no +cpu_avg_samples 2 +net_avg_samples 1 +override_utf8_locale yes +use_spacer yes + + +minimum_size 0 0 +TEXT +${voffset 10}${color EAEAEA}${font GE Inspira:pixelsize=120}${time %H:%M}${font}${voffset -84}${offset 10}${color FFA300}${font GE Inspira:pixelsize=42}${time %d} ${voffset -15}${color EAEAEA}${font GE Inspira:pixelsize=22}${time %B} ${time %Y}${font}${voffset 24}${font GE Inspira:pixelsize=58}${offset -148}${time %A}${font} +${voffset 1}${offset 12}${font Ubuntu:pixelsize=12}${color FFA300}HD ${offset 9}$color${fs_free /} / ${fs_size /}${offset 30}${color FFA300}RAM ${offset 9}$color$mem / $memmax${offset 30}${color FFA300}CPU ${offset 9}$color${cpu cpu0}% + + + + + diff --git a/conky/leftpane.conf b/conky/leftpane.conf new file mode 100644 index 0000000..4c0e0e4 --- /dev/null +++ b/conky/leftpane.conf @@ -0,0 +1,68 @@ +-- vim: ts=4 sw=4 noet ai cindent syntax=lua +--[[ +Panel for left side of screen + +Hostname * Kernel * Uptime +Load * IOWait (?) +CPU bar * RAM bar +CPU graph * RAM graph + +]] + +conky.config = { +-- i3 gaps config + alignment = 'tl', + background = true, + own_window = true, + own_window_type = 'override', + own_window_class = 'Conky', + own_window_transparent = true, + double_buffer = true, +-- Color info + default_color = 'white', + default_outline_color = 'white', + default_shade_color = 'white', +-- Draw + use_xft = true, + font = 'DejaVu Sans Mono:size=10', + border_width = 1, + draw_borders = false, + draw_graph_borders = true, + draw_outline = false, + draw_shades = false, + stippled_borders = 0, + show_graph_scale = false, + show_graph_range = false, + extra_newline = false, + uppercase = false, + use_spacer = 'none', +-- Size + minimum_height = 5, + minimum_width = 350, + maximum_width = 350, + gap_x = 5, + gap_y = 30, +-- Output + no_buffers = true, + out_to_console = false, + out_to_stderr = false, +-- Update + cpu_avg_samples = 2, + net_avg_samples = 2, + update_interval = 1.0 +} + +conky.text = [[ +$nodename ${alignc}$kernel ${alignr}$uptime +$hr +Load: $loadavg Procs: $processes Run: $running_processes +CPU: ${cpu}% ${cpubar 10,} +${cpugraph cpu1 32,170 104e8b 0077ff -l -t} ${alignr}${cpugraph cpu2 32,170 104e8b 0077ff -l -t} +RAM: $mem/$memmax $memperc% ${membar 10,} +Swap: $swap/$swapmax $swapperc% ${swapbar 10,} +#${memgraph 32,170 104e8b 0077ff -l -t} ${alignr}${swapgraph 32,170 10438b 0077ff -l -t} +Entropy: ${entropy_avail}/${entropy_poolsize} ${entropy_bar 10,} +$hr +${alignc}Public IP: ${curl wtfismyip.com/text 5} +]] + diff --git a/conky/nordcore/accu_weather/accu_weather b/conky/nordcore/accu_weather/accu_weather new file mode 100644 index 0000000..473b31e --- /dev/null +++ b/conky/nordcore/accu_weather/accu_weather @@ -0,0 +1,77 @@ +# Create own window instead of using desktop (required in nautilus) +own_window yes +own_window_type override +own_window_transparent yes +own_window_hints undecorated,below,skip_taskbar,skip_pager + +# Use double buffering (reduces flicker, may not work for everyone) +double_buffer yes + +# fiddle with window +use_spacer yes +use_xft yes + +# Update interval in seconds +update_interval 3 + +# Minimum size of text area +minimum_size 200 700 +maximum_width 350 + +override_utf8_locale yes + +# Draw shades? +draw_shades yes + +# Text stuff +draw_outline yes # amplifies text if yes +draw_borders no +#font freesans -12 +xftfont Arial:size=9 +uppercase no # set to yes if you want all text to be in uppercase + +# Stippled borders? +stippled_borders 3 + +# border margins +border_margin 9 + +# border width +border_width 10 + +# Default colors and also border colors, grey90 == #e5e5e5 +default_color cbcbcb + +own_window_colour brown +own_window_transparent yes + +# Text alignment, other possible values are commented +#alignment top_left +alignment top_right +#alignment bottom_left +#alignment bottom_right + +# Gap between borders of screen and text +gap_x 10 +gap_y 10 + +imlib_cache_size 0 +# stuff after 'TEXT' will be formatted on screen + +TEXT +${hr 2} +$alignc ${color 48bcff}PRISTINA WEATHER $color${execi 600 bash /home/altin/.fluxbox/conky/accu/Accuweather_RSS/acc_rss} +${hr 2} +${font conkyweather:size=30}${execpi 600 sed -n '2p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather}${font}${goto 75}${voffset -25}${execpi 600 sed -n '1p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c1-20} +${goto 75}${execpi 600 sed -n '1p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c21-40} +${goto 75}${execpi 600 sed -n '1p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c41-60} + +${execi 600 sed -n '3p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather} +${font conkyweather:size=30}${execpi 600 sed -n '5p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather}${font}${goto 75}${voffset -25}${execpi 600 sed -n '4p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c1-20} +${goto 75}${execpi 600 sed -n '4p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c21-40} +${goto 75}${execpi 600 sed -n '4p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c41-60} + +${execi 600 sed -n '6p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather} +${font conkyweather:size=30}${execpi 600 sed -n '8p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather}${font}${goto 75}${voffset -25}${execpi 600 sed -n '4p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c1-20} +${goto 75}${execpi 600 sed -n '7p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c21-40} +${goto 75}${execpi 600 sed -n '7p' /home/altin/.fluxbox/conky/accu/Accuweather_RSS/weather|cut -c41-60} diff --git a/conky/nordcore/accu_weather/rss/acc_rss b/conky/nordcore/accu_weather/rss/acc_rss new file mode 100644 index 0000000..e434f39 --- /dev/null +++ b/conky/nordcore/accu_weather/rss/acc_rss @@ -0,0 +1,115 @@ +#!/bin/bash + +#function: test_image +test_image () { + case $1 in + 1|01) + echo a + ;; + 2|02) + echo b + ;; + 3|03) + echo c + ;; + 4|04) + echo c + ;; + 5|05) + echo c + ;; + 6|06) + echo d + ;; + 7|07) + echo e + ;; + 8|08) + echo e + ;; + 11) + echo 0 + ;; + 12) + echo h + ;; + 13|14) + echo g + ;; + 15) + echo l + ;; + 16|17) + echo k + ;; + 18|26) + echo i + ;; + 19) + echo p + ;; + 20|21|23) + echo o + ;; + 22) + echo r + ;; + 24|31) + echo E + ;; + 25) + echo u + ;; + 29) + echo v + ;; + 30) + echo 5 + ;; + 32) + echo 6 + ;; + 33) + echo A + ;; + 34|36|37) + echo B + ;; + 35|38) + echo C + ;; + 39|40) + echo G + ;; + 41|42) + echo K + ;; + 43|44) + echo O + ;; + esac +} + +#put your accuweather rss address here +address="http://rss.accuweather.com/rss/liveweather_rss.asp?metric=1&locCode=EUR|XK|298740|PRISTINA" + +killall wget +wget -O ./weather_raw $address + + +if [[ -s ./weather_raw ]]; then + + egrep 'Currently|Forecast<\/title>|_31x31.gif' ./weather_raw > ./weather + sed -i '/AccuWeather\|Currently in/d' ./weather + sed -i -e 's/^[ \t]*//g' -e 's/\|<\/title>\|<description>\|<\/description>//g' ./weather + sed -i -e 's/<img src="/\n/g' ./weather + sed -i '/^$/d' ./weather + sed -i -e 's/_31x31.*$//g' -e 's/^.*\/icons\///g' ./weather + sed -i -e '1s/.$//' -e '3s/.$//' -e '6s/.$//' ./weather + for (( i=2; i<=8; i+=3 )) + do + im=$(sed -n ${i}p ./weather) + sed -i $i"s/^.*$/$(test_image $im)/" ./weather + done + +fi diff --git a/conky/nordcore/accu_weather/rss/weather b/conky/nordcore/accu_weather/rss/weather new file mode 100644 index 0000000..ea6cb43 --- /dev/null +++ b/conky/nordcore/accu_weather/rss/weather @@ -0,0 +1,8 @@ +Currently: Partly Sunny: 25C +c +7/22/2012 Forecast +High: 29 C Low: 13 C Some sun, a t-storm; cooler +k +7/23/2012 Forecast +High: 28 C Low: 14 C Variable clouds with t-storms +k diff --git a/conky/nordcore/accu_weather/rss/weather_raw.xml b/conky/nordcore/accu_weather/rss/weather_raw.xml new file mode 100644 index 0000000..5c1f1f9 --- /dev/null +++ b/conky/nordcore/accu_weather/rss/weather_raw.xml @@ -0,0 +1,56 @@ +<?xml version = "1.0"?> +<rss version="2.0"> +<channel> +<title>Pristina, XK - AccuWeather.com Forecast +http://www.accuweather.com/en/xk/pristina/298740/%pagename%/298740 + + AccuWeather.com Forecast & Current Conditions + 60 + Copyright 2012, AccuWeather, Inc., All rights reserved. For personal use only. + Sun, 22 Jul 2012 09:38:43 GMT + en-us + + Pristina, XK - AccuWeather.com Forecast +/en/xk/pristina/298740/weather-forecast/298740 + + AccuWeather.com The Best Weather on the Web! + http://vortex.accuweather.com/adc2004/pub/images/logos/adc_logo_187.gif + 144 + 19 + + + Currently: Partly Sunny: 25C + http://www.accuweather.com/en/xk/pristina/298740/weather-forecast/298740 + http://www.accuweather.com/en/xk/pristina/298740/weather-forecast/298740 + + Currently in Pristina, XK: 25 °C and Partly Sunny + <img src="http://vortex.accuweather.com/phoenix2/images/common/icons/03_31x31.gif"> + + + Sun, 22 Jul 2012 09:38:43 GMT + + + + 7/22/2012 Forecast + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=1 + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=1 + High: 29 C Low: 13 C Some sun, a t-storm; cooler <img src="http://vortex.accuweather.com/phoenix2/images/common/icons/17_31x31.gif" > + Sun, 22 Jul 2012 09:38:43 GMT + + + + 7/23/2012 Forecast + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=2 + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=2 + High: 28 C Low: 14 C Variable clouds with t-storms <img src="http://vortex.accuweather.com/phoenix2/images/common/icons/16_31x31.gif" > + Sun, 22 Jul 2012 09:38:43 GMT + + +The AccuWeather.com RSS Center +To discover additional weather feeds, visit the AccuWeather.com RSS Center at http://www.accuweather.com/en/downloads +http://www.accuweather.com/en/downloads +http://www.accuweather.com/en/downloads +Sun, 22 Jul 2012 09:38:43 GMT + + + diff --git a/conky/nordcore/clock01_rings.lua b/conky/nordcore/clock01_rings.lua new file mode 100644 index 0000000..2e0050a --- /dev/null +++ b/conky/nordcore/clock01_rings.lua @@ -0,0 +1,348 @@ +--[[ +# Clock Rings by Linux Mint (2012) reEdited by Altin. +# +# This script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. +# This script is based off a combination of my clock.lua script and my rings.lua script. +# +# IMPORTANT: If you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. +# The if statement on line 324 uses a delay to make sure that this doesn't happen. +# It calculates the length of the delay by the number of updates since Conky started. +# Generally, a value of 5s is long enough, so if you update Conky every 1s, +# use update_num>5 in that if statement (the default). +# If you only update Conky every 2s, you should change it to update_num>3; +# conversely if you update Conky every 0.5s, you should use update_num>10. +# ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, +# otherwise the update_num will not be reset and you will get an error. +# +# To call this script in Conky, use the following in your conkyrc: +# +# lua_load ~/.conky/clock01_rings.lua +# lua_draw_hook_pre clock_rings +# +# Changelog: +# * v1.0 --> Original release (30.09.2009) +# * v1.1p --> Jpope edit londonali1010 (05.10.2009) +# * vX 2011mint --> reEdit despot77 (18.02.2011) +# * vX 2012 --> Altin reEdit (22.07.2012) +# * Added weather function (Accu Weather) +# * Added battery monitoring +# * Syslog monitoring +# * Running processes monitoring +# * Rearanged rings +# * Exctra network functions/monitoring +# * Changed Fonts +]] + +settings_table = { + { + -- Edit this table to customise your rings. + -- You can create more rings simply by adding more elements to settings_table. + -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'. + name='time', + -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''. + arg='%I.%M', + -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100. + max=12, + -- "bg_colour" is the colour of the base ring. + bg_colour=0xffffff, + -- "bg_alpha" is the alpha value of the base ring. + bg_alpha=0.15, + -- "fg_colour" is the colour of the indicator part of the ring. + fg_colour=0x8fbcbb, + -- "fg_alpha" is the alpha value of the indicator part of the ring. + fg_alpha=0.3, + -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window. + x=100, y=175, + -- "radius" is the radius of the ring. + radius=50, + -- "thickness" is the thickness of the ring, centred around the radius. + thickness=5, + -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative. + start_angle=0, + -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle. + end_angle=360 + }, + + { + name='battery_percent', + arg='', + max=100, + bg_colour=0xffffff, + bg_alpha=0.2, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=222, y=110, + radius=27, + thickness=5, + start_angle=-90, + end_angle=270 + }, + + { + name='time', + arg='%M.%S', + max=60, + bg_colour=0xffffff, + bg_alpha=0.1, + fg_colour=0x8fbcbb, + fg_alpha=0.4, + x=100, y=175, + radius=66, + thickness=5, + start_angle=0, + end_angle=360 + }, + { + name='time', + arg='%S', + max=60, + bg_colour=0xffffff, + bg_alpha=0.1, + fg_colour=0x8fbcbb, + fg_alpha=0.6, + x=100, y=175, + radius=72, + thickness=5, + start_angle=0, + end_angle=360 + }, + { + name='time', + arg='%d', + max=31, + bg_colour=0xffffff, + bg_alpha=0.1, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=100, y=175, + radius=80, + thickness=5, + start_angle=-90, + end_angle=90 + }, + { + name='time', + arg='%m', + max=12, + bg_colour=0xffffff, + bg_alpha=0.1, + fg_colour=0x8fbcbb, + fg_alpha=1, + x=100, y=175, + radius=86, + thickness=5, + start_angle=-90, + end_angle=90 + }, + { + name='cpu', + arg='cpu0', + max=100, + bg_colour=0xffffff, + bg_alpha=0.3, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=145, y=337, + radius=25, + thickness=5, + start_angle=-90, + end_angle=180 + }, + { + name='cpu', + arg='cpu1', + max=100, + bg_colour=0xffffff, + bg_alpha=0.3, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=220, y=337, + radius=25, + thickness=5, + start_angle=-90, + end_angle=180 + }, + { + name='fs_used_perc', + arg='/', + max=100, + bg_colour=0xffffff, + bg_alpha=0.2, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=35, y=590, + radius=25, + thickness=5, + start_angle=-90, + end_angle=180 + }, + { + name='memperc', + arg='', + max=100, + bg_colour=0xffffff, + bg_alpha=0.2, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=130, y=590, + radius=25, + thickness=5, + start_angle=-90, + end_angle=180 + }, + { + name='swapperc', + arg='', + max=100, + bg_colour=0xffffff, + bg_alpha=0.2, + fg_colour=0x8fbcbb, + fg_alpha=0.8, + x=220, y=590, + radius=25, + thickness=5, + start_angle=-90, + end_angle=172 + }, +} + +-- Use these settings to define the origin and extent of your clock. + +clock_r=65 + +-- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window. + +clock_x=100 +clock_y=175 + +show_seconds=true -- Change to true if you want the seconds hand + +require 'cairo' + +function rgb_to_r_g_b(colour,alpha) + return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha +end + +function window_background(colour,alpha) + return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha +end + +function draw_ring(cr,t,pt) + local w,h=conky_window.width,conky_window.height + + local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle'] + local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha'] + + local angle_0=sa*(2*math.pi/360)-math.pi/2 + local angle_f=ea*(2*math.pi/360)-math.pi/2 + local t_arc=t*(angle_f-angle_0) + + -- Draw background ring + + cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) + cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga)) + cairo_set_line_width(cr,ring_w) + cairo_stroke(cr) + + -- Draw indicator ring + + cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) + cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga)) + cairo_stroke(cr) +end + +function draw_clock_hands(cr,xc,yc) + local secs,mins,hours,secs_arc,mins_arc,hours_arc + local xh,yh,xm,ym,xs,ys + + secs=os.date("%S") + mins=os.date("%M") + hours=os.date("%I") + + secs_arc=(2*math.pi/60)*secs + mins_arc=(2*math.pi/60)*mins+secs_arc/60 + hours_arc=(2*math.pi/12)*hours+mins_arc/12 + + -- Draw hour hand + + xh=xc+0.76*clock_r*math.sin(hours_arc) + yh=yc-0.72*clock_r*math.cos(hours_arc) + cairo_move_to(cr,xc,yc) + cairo_line_to(cr,xh,yh) + + cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND) + cairo_set_line_width(cr,5) + cairo_set_source_rgba(cr,1.0,1.0,1.0,1.0) + cairo_stroke(cr) + + -- Draw minute hand + + xm=xc+0.98*clock_r*math.sin(mins_arc) + ym=yc-1.02*clock_r*math.cos(mins_arc) + cairo_move_to(cr,xc,yc) + cairo_line_to(cr,xm,ym) + + cairo_set_line_width(cr,3) + cairo_stroke(cr) + + -- Draw seconds hand + + if show_seconds then + xs=xc+1.1*clock_r*math.sin(secs_arc) + ys=yc-clock_r*math.cos(secs_arc) + cairo_move_to(cr,xc,yc) + cairo_line_to(cr,xs,ys) + + cairo_set_line_width(cr,1) + cairo_stroke(cr) + end +end + +function conky_clock_rings() + local function setup_rings(cr,pt) + local str='' + local value=0 + + if pt['name'] == 'time' then + if pt['arg'] == '%I.%M' then + value = math.fmod(os.date("%I"),12) + os.date("%M")/60 + elseif pt['arg'] == '%M.%S' then + value = os.date("%M") + os.date("%S")/60 + else + value = os.date(pt['arg']) + end + elseif pt['name'] == 'battery_percent' then + + str='${if_existing /sys/class/power_supply/BAT0}${battery_percent BAT0}${else}${if_existing /sys/class/power_supply/BAT1}${battery_percent BAT1}${else}0${endif}${endif}' + str=conky_parse(str) + value=tonumber(str) + + else + str=string.format('${%s %s}',pt['name'],pt['arg']) + str=conky_parse(str) + value=tonumber(str) + end + + pct=value/pt['max'] + + draw_ring(cr,pct,pt) + end + + -- Check that Conky has been running for at least 5s + + if conky_window==nil then return end + local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height) + + local cr=cairo_create(cs) + + local updates=conky_parse('${updates}') + update_num=tonumber(updates) + + if update_num>5 then + for i in pairs(settings_table) do + setup_rings(cr,settings_table[i]) + end + end + + draw_clock_hands(cr,clock_x,clock_y) +end diff --git a/conky/nordcore/conkyrc2core b/conky/nordcore/conkyrc2core new file mode 100644 index 0000000..4828a39 --- /dev/null +++ b/conky/nordcore/conkyrc2core @@ -0,0 +1,146 @@ +conky.config = { +-- Conky settings # + background = false, + update_interval = 1, + + cpu_avg_samples = 2, + net_avg_samples = 2, + + override_utf8_locale = true, + + double_buffer = true, + no_buffers = true, + + text_buffer_size = 2048, +--imlib_cache_size 0 + + +-- Window specifications # + own_window = true, + own_window_type = 'override', + own_window_transparent = true, + own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', + + border_inner_margin = 0, + border_outer_margin = 5, + + minimum_width = 280, minimum_height = 1080, + maximum_width = 520, minimum_height = 1080, + + alignment = 'middle_right', + gap_x = 10, + gap_y = -80, + +-- Graphics settings # + draw_shades = false, + draw_outline = false, + draw_borders = false, + draw_graph_borders = true, + +-- Text settings # + use_xft = true, + font = 'Roboto:style=Medium:size=10', + xftalpha = 0.5, + + uppercase = false, + +-- temperature_unit = 'fahrenheit', + temperature_unit = 'celsius', + + -- default_color = 'fbf1c7', + -- color0 = 'fbf1c7', + -- color1 = 'fbf1c7', + default_color = 'fbf1c7', + color0 = 'fbf1c7', + color1 = 'fbf1c7', + + +-- network templates + if_up_strictness = 'address', + + template0 = [[${color1}\1: $color$alignr${addr \1} +${color1}Current: $color${alignr}${execi 10 test -e /sys/class/net/\1 && /sbin/iwconfig \1 | awk '/Bit Rate=/ { sub(/Rate=/,"", $2); print $2 }'} Mbits/sec]], + + template1 = [[ +${color1}\1: $color$alignr${addr \1}\n]], + + template2 = [[${color1}Down: $color${downspeed \1} k/s ${alignr}${color1}Up:$color ${upspeed \1} k/s +${downspeedgraph \1 30,120 000000 88c0d0} ${alignr}${upspeedgraph \1 30,120 000000 88c0d0}$color +${color1}Total:$color ${totaldown \1} ${alignr}${color1}\1 ${alignr}${color1}Total:$color ${totalup \1}]], + + template4 = 'ens33', + template5 = 'eth1', + template6 = 'wlan0', + template7 = 'wlan1', + + +-- wheather templates + + template8 = '~/.conky/nordcore/weather', + template9 = '~/.conky/nordcore/weather_raw', + + +}; + +-- fluxbox adjustment`` +return_code = os.execute('pidof -q fluxbox') +if _VERSION == 'Lua 5.1' and math.floor(return_code/256) == 0 or + _VERSION ~= 'Lua 5.1' and return_code then + conky.config.own_window_transparent = true + conky.config.own_window_argb_visual = false +end + +conky.text = [[ +#---------------------------------------------------------------------------------------------------------------------------------------- +$font${color1}User:$color${alignr}$font$USER +# Time and date +#---------------------------------------------------------------------------------------------------------------------------------------- +#---------------------------------------------------------------------------------------------------------------------------------------- +# Battery Circle +#---------------------------------------------------------------------------------------------------------------------------------------- +#---------------------------------------------------------------------------------------------------------------------------------------- +# Weather +#---------------------------------------------------------------------------------------------------------------------------------------- + +# DISK/RAM/SWAP usage +#---------------------------------------------------------------------------------------------------------------------------------------- +${color FFFFFF}${goto 7}${voffset 32}${fs_used_perc /}% +${color1}${goto 7}DISK +${color FFFFFF}${goto 102}${voffset -36}${memperc}% +${color1}${goto 102}RAM +${color FFFFFF}${goto 192}${voffset -37}${swapperc}% +${color1}${goto 191}SWAP + +${color1}Root Directory: ${alignr}$color${fs_used /} / ${fs_size /}(${fs_used_perc}%) +${color1}${fs_bar 30 /} +${color1}Home Directory : ${alignr}$color${fs_used /home} / ${fs_size /home}(${fs_used_perc}%) +${color1}${fs_bar 30 /home} +#${color1}CPU 1${alignr}$color${cpu cpu1 \1}% +#${cpugraph cpu1 \1 000000 88c0d0} +#${color1}CPU 2${alignr}$color${cpu cpu2 \1}% +#${cpugraph cpu2 \1 000000 88c0d0} +#---------------------------------------------------------------------------------------------------------------------------------------- +# Running processes +#---------------------------------------------------------------------------------------------------------------------------------------- +${color1}${voffset 5}NAME${goto 122}PID${goto 163}CPU%${goto 210}MEM%$color${voffset 5} +${top name 1}${goto 115}${top pid 1}${goto 160}${top cpu 1}${goto 205}${top mem 1} +${top name 2}${goto 115}${top pid 2}${goto 160}${top cpu 2}${goto 205}${top mem 2} +${top name 3}${goto 115}${top pid 3}${goto 160}${top cpu 3}${goto 205}${top mem 3} +${top name 4}${goto 115}${top pid 3}${goto 160}${top cpu 4}${goto 205}${top mem 4} +${top name 5}${goto 115}${top pid 3}${goto 160}${top cpu 5}${goto 205}${top mem 5} +${top name 6}${goto 115}${top pid 6}${goto 160}${top cpu 6}${goto 205}${top mem 6} +${top name 7}${goto 115}${top pid 7}${goto 160}${top cpu 7}${goto 205}${top mem 7} +${top name 8}${goto 115}${top pid 8}${goto 160}${top cpu 8}${goto 205}${top mem 8} +${top name 9}${goto 115}${top pid 9}${goto 160}${top cpu 9}${goto 205}${top mem 9} +${top name 10}${goto 115}${top pid 10}${goto 160}${top cpu 10}${goto 205}${top mem 10} +#---------------------------------------------------------------------------------------------------------------------------------------- +# Computer info +#---------------------------------------------------------------------------------------------------------------------------------------- +${color1}${voffset 2}${hr 1}${voffset 5} +${color1}Hostname:$color${alignr}${nodename} +${color1}OS:$color${alignr}${exec cat /etc/issue}${color1}Machine:$color${alignr}${machine} +${color1}Kernel:$color${alignr}${kernel} +]]; + + + diff --git a/conky/nordcore/conkyrc2core.png b/conky/nordcore/conkyrc2core.png new file mode 100644 index 0000000..41b047d Binary files /dev/null and b/conky/nordcore/conkyrc2core.png differ diff --git a/conky/nordcore/fonts/AvantGarde_LT_Medium.ttf b/conky/nordcore/fonts/AvantGarde_LT_Medium.ttf new file mode 100644 index 0000000..418fb14 Binary files /dev/null and b/conky/nordcore/fonts/AvantGarde_LT_Medium.ttf differ diff --git a/conky/nordcore/fonts/Radio_Space.ttf b/conky/nordcore/fonts/Radio_Space.ttf new file mode 100644 index 0000000..1750f02 Binary files /dev/null and b/conky/nordcore/fonts/Radio_Space.ttf differ diff --git a/conky/nordcore/source.txt b/conky/nordcore/source.txt new file mode 100644 index 0000000..dec85fc --- /dev/null +++ b/conky/nordcore/source.txt @@ -0,0 +1 @@ +https://github.com/MX-Linux/mx-conky-data/tree/master/MX-CoreBlue diff --git a/conky/nordcore/start_conky.sh b/conky/nordcore/start_conky.sh new file mode 100644 index 0000000..db1f472 --- /dev/null +++ b/conky/nordcore/start_conky.sh @@ -0,0 +1,3 @@ +#!/bin/bash +sleep 10 +conky -c ~/.conky/nordcore/conkyrc2core diff --git a/conky/nordcore/start_conky.sh.desktop b/conky/nordcore/start_conky.sh.desktop new file mode 100644 index 0000000..f575af7 --- /dev/null +++ b/conky/nordcore/start_conky.sh.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Exec=/home/linuxscoop/.conky/nordcore/start_conky.sh +Hidden=false +NoDisplay=false +X-GNOME-Autostart-enabled=true +Name[en_US]=conky +Name=conky +Comment[en_US]=conky +Comment=conky diff --git a/conky/nordcore/weather b/conky/nordcore/weather new file mode 100644 index 0000000..dd8550d --- /dev/null +++ b/conky/nordcore/weather @@ -0,0 +1,8 @@ +Currently: Partly Sunny: 25C +c +7/5/2013 Forecast +High: 27 C Low: 13 C A couple of thunderstorms +k +7/6/2013 Forecast +High: 24 C Low: 14 C Rain and a thunderstorm +i diff --git a/conky/nordcore/weather_raw.xml b/conky/nordcore/weather_raw.xml new file mode 100644 index 0000000..86bdbb9 --- /dev/null +++ b/conky/nordcore/weather_raw.xml @@ -0,0 +1,56 @@ + + + +Pristina, XK - AccuWeather.com Forecast +http://www.accuweather.com/en/xk/pristina/298740/%pagename%/298740 + + AccuWeather.com Forecast & Current Conditions + 60 + Copyright 2013, AccuWeather, Inc., All rights reserved. For personal use only. + Fri, 05 Jul 2013 09:12:00 GMT + en-us + + Pristina, XK - AccuWeather.com Forecast +/en/xk/pristina/298740/weather-forecast/298740 + + AccuWeather.com The Best Weather on the Web! + http://vortex.accuweather.com/adc2004/pub/images/logos/adc_logo_187.gif + 144 + 19 + + + Currently: Partly Sunny: 25C + http://www.accuweather.com/en/xk/pristina/298740/weather-forecast/298740 + http://www.accuweather.com/en/xk/pristina/298740/weather-forecast/298740 + + Currently in Pristina, XK: 25 °C and Partly Sunny + <img src="http://vortex.accuweather.com/phoenix2/images/common/icons/03_31x31.gif"> + + + Fri, 05 Jul 2013 09:12:00 GMT + + + + 7/5/2013 Forecast + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=1 + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=1 + High: 27 C Low: 13 C A couple of thunderstorms <img src="http://vortex.accuweather.com/phoenix2/images/common/icons/17_31x31.gif" > + Fri, 05 Jul 2013 09:12:00 GMT + + + + 7/6/2013 Forecast + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=2 + http://www.accuweather.com/en/xk/pristina/298740/daily-weather-forecast/298740?day=2 + High: 24 C Low: 14 C Rain and a thunderstorm <img src="http://vortex.accuweather.com/phoenix2/images/common/icons/18_31x31.gif" > + Fri, 05 Jul 2013 09:12:00 GMT + + +The AccuWeather.com RSS Center +To discover additional weather feeds, visit the AccuWeather.com RSS Center at http://www.accuweather.com/en/downloads +http://www.accuweather.com/en/downloads +http://www.accuweather.com/en/downloads +Fri, 05 Jul 2013 09:12:00 GMT + + + diff --git a/dconf/user b/dconf/user new file mode 100644 index 0000000..225b3c2 Binary files /dev/null and b/dconf/user differ diff --git a/dunst/base16-nord.dunstrc b/dunst/base16-nord.dunstrc new file mode 100644 index 0000000..2aad3bd --- /dev/null +++ b/dunst/base16-nord.dunstrc @@ -0,0 +1,51 @@ +[global] + font = "Hack 12" + markup = full + format = "%s\n%b" + sort = yes + indicate_hidden = yes + alignment = center + stack_duplicates = true + bounce_freq = 0 + show_age_threshold = 60 + word_wrap = yes + ignore_newline = no + geometry = "200x5-6+30" + browser = /usr/bin/firefox -new-tab + transparency = 0 + idle_threshold = 120 + monitor = 0 + follow = mouse + sticky_history = yes + line_height = 0 + separator_height = 2 + padding = 8 + horizontal_padding = 8 + separator_color = "#585858" + startup_notification = false + # https://github.com/knopwob/dunst/issues/26#issuecomment-36159395 + #icon_position = left + frame_width = 1 + icon_folders = /usr/share/icons/breeze/apps/48/:/usr/share/icons/breeze/actions/48/:/usr/share/icons/breeze/places/48/:/usr/share/icons/breeze/status/48/ + frame_color = "#fbf1c7" + +[shortcuts] + close = ctrl+space + close_all = ctrl+shift+space + history = ctrl+grave + context = ctrl+shift+period + +[urgency_low] + background = "#1D282828" + foreground = "#ebdbb2" + timeout = 5 + +[urgency_normal] + background = "#1D282828" + foreground = "#ebdbb2" + timeout = 10 + +[urgency_critical] + background = "#1D282828" + foreground = "#ebdbb2" + timeout = 20 diff --git a/i3/Blocks/bandwidth b/i3/Blocks/bandwidth new file mode 100644 index 0000000..c0e6483 --- /dev/null +++ b/i3/Blocks/bandwidth @@ -0,0 +1,103 @@ +#!/bin/bash +# Source: http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html + +INSTANCE="${BLOCK_INSTANCE}" +# If you don't like you can use any other IP +INTERFACE="$(ip route get 8.8.8.8 | grep -Po '(?<=(dev )).*(?= src)')" + +if [[ "${INSTANCE}" = "" ]]; then + INSTANCE="${INTERFACE};both" +fi + +DISPLAY=$(echo "${INSTANCE}" | awk -F ';' '{print $2}') +INSTANCE=$(echo "${INSTANCE}" | awk -F ';' '{print $1}') + +if [[ "${DISPLAY}" = "" ]]; then + DISPLAY="both" +fi + +ONE_KB=1024 +ONE_MB=$(echo "${ONE_KB}*1024" | bc -l) +TEN_MB=$(echo "${ONE_MB}*10" | bc -l) +OHD_MB=$(echo "${TEN_MB}*10" | bc -l) + +URGENT_VALUE="${ONE_MB}" + +PREV_IN=0 +PREV_OUT=0 + +PREV_FILE="/tmp/.bandwidth" + +if [[ -f "${PREV_FILE}" ]]; then + PREV_CONT=$(cat "${PREV_FILE}") + PREV_IN=$(echo "${PREV_CONT}" | head -n 1) + PREV_OUT=$(echo "${PREV_CONT}" | tail -n 1) +fi + +BANDWIDTH=$(grep "${INSTANCE}" /proc/net/dev | awk -F: '{print $2}' | awk '{print $1" "$9}') + +if [[ "${BANDWIDTH}" = "" ]]; then + exit +fi + +BYTES_IN=$(echo "${BANDWIDTH}" | awk -F ' ' '{print $1}') +BYTES_OUT=$(echo "${BANDWIDTH}" | awk -F ' ' '{print $2}') + +function FormatNumber() { + if [[ "${1}" -ge "${OHD_MB}" ]]; then + printf "%03d" $(echo "scale=0;${1}/${ONE_MB}" | bc -l) + echo "m" + elif [[ "${1}" -ge "${TEN_MB}" ]]; then + printf "%03d" $(echo "scale=1;${1}/${ONE_MB}" | bc -l) + echo "m" + elif [[ "${1}" -ge "${ONE_MB}" ]]; then + printf "%03d" $(echo "scale=2;${1}/${ONE_MB}" | bc -l) + echo "m" + elif [[ "${1}" -ge "${ONE_KB}" ]]; then + printf "%03d" $(echo "scale=0;${1}/${ONE_KB}" | bc -l) + echo "k" + else + printf "%03d" "$1" + echo "b" + fi +} + +if [[ "${PREV_IN}" != "" ]] && [[ "${PREV_OUT}" != "" ]]; then + # Calculate the CPU usage since we last checked. + DIFF_IN=$(echo "scale=0;${BYTES_IN} - ${PREV_IN}" | bc -l) + DIFF_OUT=$(echo "scale=0;${BYTES_OUT} - ${PREV_OUT}" | bc -l) + DIFF_TOTAL=0 + + USAGE_IN=$(FormatNumber "${DIFF_IN}") + USAGE_OUT=$(FormatNumber "${DIFF_OUT}") + + if [[ "${DISPLAY}" = "both" ]]; then + echo "${USAGE_IN} : ${USAGE_OUT}" + echo "${USAGE_IN} : ${USAGE_OUT}" + echo "" + DIFF_TOTAL=$((DIFF_TOTAL+DIFF_IN)) + DIFF_TOTAL=$((DIFF_TOTAL+DIFF_OUT)) + elif [[ "${DISPLAY}" = "in" ]]; then + echo "${USAGE_IN}" + echo "${USAGE_IN}" + echo "" + DIFF_TOTAL=$((DIFF_TOTAL+DIFF_IN)) + elif [[ "${DISPLAY}" = "out" ]]; then + echo "${USAGE_OUT}" + echo "${USAGE_OUT}" + echo "" + DIFF_TOTAL=$((DIFF_TOTAL+DIFF_OUT)) + fi +else + echo "?" + echo "?" + echo "" +fi + +# Remember the total and idle CPU times for the next check. +echo "${BYTES_IN}" > "${PREV_FILE}" +echo "${BYTES_OUT}" >> "${PREV_FILE}" + +if [[ "${DIFF_TOTAL}" -ge "${URGENT_VALUE}" ]]; then + exit 0 +fi diff --git a/i3/Blocks/battery b/i3/Blocks/battery new file mode 100644 index 0000000..31aa69d --- /dev/null +++ b/i3/Blocks/battery @@ -0,0 +1,26 @@ +#!/bin/bash + +BATTERY=0 +BATTERY_INFO=$(acpi -b | grep "Battery ${BATTERY}") +BATTERY_STATE=$(echo "${BATTERY_INFO}" | grep -wo "Full\|Charging\|Not") +BATTERY_POWER=$(echo "${BATTERY_INFO}" | grep -o '[0-9]\+%' | tr -d '%') + +URGENT_VALUE=10 + +if [[ "${BATTERY_STATE}" = "Charging" ]]; then + echo "${BATTERY_POWER}%+" + echo "${BATTERY_POWER}%+" + echo "" +elif [[ "${BATTERY_STATE}" = "Not" ]]; then + echo "${BATTERY_POWER}%-" + echo "${BATTERY_POWER}%-" + echo "" +else + echo "${BATTERY_POWER}%" + echo "${BATTERY_POWER}%" + echo "" +fi + +if [[ "${BATTERY_POWER}" -le "${URGENT_VALUE}" ]]; then + exit 0 +fi \ No newline at end of file diff --git a/i3/Blocks/brightness b/i3/Blocks/brightness new file mode 100644 index 0000000..77c48ce --- /dev/null +++ b/i3/Blocks/brightness @@ -0,0 +1,64 @@ +#!/bin/bash + +# One of the following: xrandr, xbacklight, kernel +METHOD="xbacklight" + +# Left click +if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then + ~/.Scripts/ChangeWallpapers.sh +#elif [[ "${BLOCK_BUTTON}" -eq 2 ]]; then +# ~/.Scripts/ChangeWallpapers.sh +#elif [[ "${BLOCK_BUTTON}" -eq 3 ]]; then +# xbacklight -dec 10 +elif [[ "${BLOCK_BUTTON}" -eq 4 ]]; then + xbacklight -inc 5 +elif [[ "${BLOCK_BUTTON}" -eq 5 ]]; then + xbacklight -dec 5 +fi + +URGENT_VALUE=10 + +if [[ "${METHOD}" = "xrandr" ]]; then + device="${BLOCK_INSTANCE:-primary}" + xrandrOutput=$(xrandr --verbose) + + if [[ "${device}" = "primary" ]]; then + device=$(echo "${xrandrOutput}" | grep 'primary' | head -n 1 | awk -F ' ' '{print $1}') + fi + + curBrightness=$(echo "${xrandrOutput}" | grep "${device}" -A 5 | grep -i "Brightness" | awk -F ':' '{print $2}') +elif [[ "${METHOD}" = "kernel" ]]; then + device="${BLOCK_INSTANCE:-intel_backlight}" + maxBrightness=$(cat /sys/class/backlight/${device}/max_brightness) + curBrightness=$(cat /sys/class/backlight/${device}/brightness) +elif [[ "${METHOD}" = "xbacklight" ]]; then + curBrightness=$(xbacklight -get) +fi + +if [[ "${curBrightness}" -le 0 ]]; then + echo "X" + echo "" +fi + +if [[ "${METHOD}" = "xrandr" ]]; then + percent=$(echo "scale=0;${curBrightness} * 100" | bc -l) +elif [[ "${METHOD}" = "kernel" ]]; then + percent=$(echo "scale=0;${curBrightness} / ${maxBrightness} * 100" | bc -l) +elif [[ "${METHOD}" = "xbacklight" ]]; then + percent=$(echo "scale=0;${curBrightness}" | bc -l) +fi + +percent=${percent%.*} + +if [[ "${percent}" -le 0 ]]; then + echo "X" + echo "" +fi + +echo "${percent}%" +echo "${percent}%" +echo "" + +if [[ "${percent}" -le "${URGENT_VALUE}" ]]; then + exit 33 +fi \ No newline at end of file diff --git a/i3/Blocks/cpu b/i3/Blocks/cpu new file mode 100644 index 0000000..2cb27ad --- /dev/null +++ b/i3/Blocks/cpu @@ -0,0 +1,48 @@ +#!/bin/bash +# Source: http://askubuntu.com/a/450136 + +URGENT_VALUE=90 + +PREV_TOTAL=0 +PREV_IDLE=0 + +cpuFile="/tmp/.cpu" + +if [[ -f "${cpuFile}" ]]; then + fileCont=$(cat "${cpuFile}") + PREV_TOTAL=$(echo "${fileCont}" | head -n 1) + PREV_IDLE=$(echo "${fileCont}" | tail -n 1) +fi + +CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. +unset CPU[0] # Discard the "cpu" prefix. +IDLE=${CPU[4]} # Get the idle CPU time. + +# Calculate the total CPU time. +TOTAL=0 + +for VALUE in "${CPU[@]:0:4}"; do + let "TOTAL=$TOTAL+$VALUE" +done + +if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then + # Calculate the CPU usage since we last checked. + let "DIFF_IDLE=$IDLE-$PREV_IDLE" + let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" + let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" + echo "${DIFF_USAGE}%" + echo "${DIFF_USAGE}%" + echo "" +else + echo "?" + echo "?" + echo "" +fi + +# Remember the total and idle CPU times for the next check. +echo "${TOTAL}" > "${cpuFile}" +echo "${IDLE}" >> "${cpuFile}" + +if [[ "${DIFF_USAGE}" -gt 0 ]] && [[ "${DIFF_USAGE}" -gt "${URGENT_VALUE}" ]]; then + exit 33 +fi \ No newline at end of file diff --git a/i3/Blocks/fcitx b/i3/Blocks/fcitx new file mode 100644 index 0000000..65e6445 --- /dev/null +++ b/i3/Blocks/fcitx @@ -0,0 +1,11 @@ +#!/bin/bash + +SSPID=$(pgrep -l fcitx |awk -F ' ' '{print $1}') + +if [[ "${SSPID}" != "" ]]; then + echo "" + echo "" +else + echo "" + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/firewall b/i3/Blocks/firewall new file mode 100644 index 0000000..6fe26f6 --- /dev/null +++ b/i3/Blocks/firewall @@ -0,0 +1,28 @@ +#!/bin/bash + +# Left click +if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then + sudo ufw enable +# Middle click +elif [[ "${BLOCK_BUTTON}" -eq 2 ]]; then + sudo ufw reload +# Right click +elif [[ "${BLOCK_BUTTON}" -eq 3 ]]; then + sudo ufw disable +fi + +status=$(sudo ufw status 2>/dev/null) + +if [[ $? -gt 0 ]]; then + exit +fi + +if [[ "${status}" != *inactive* ]]; then + echo "on" + echo "on" + echo "" +else + echo "off" + echo "off" + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/headphone b/i3/Blocks/headphone new file mode 100644 index 0000000..876a469 --- /dev/null +++ b/i3/Blocks/headphone @@ -0,0 +1,57 @@ +#!/bin/bash + +#if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then +# termite -e alsamixer +#elif [[ "${BLOCK_BUTTON}" -eq 4 ]]; then +# amixer -q sset Master 2%+ +#elif [[ "${BLOCK_BUTTON}" -eq 5 ]]; then +# amixer -q sset Master 2%- +#fi +VALUE=$(amixer -c 0 contents | \ +awk -F"," ' +$1 == "numid=14" { + c=1 +} c && /: values/ { + split($0, a, "=") + print a[2]; + exit +}') + +if [[ "${VALUE}" == "on" ]]; then + echo "" +#else +# echo "" +# echo "" +fi + + +#from https://unix.stackexchange.com/questions/76375/how-do-i-detect-wheter-the-audio-cable-is-connected +#One way could perhaps be to use amixer. + +#Jack plugged in: + +#$ amixer -c 0 contents +#numid=29,iface=CARD,name='Front Headphone Jack' +# ; type=BOOLEAN,access=r-------,values=1 +# : values=on +#... +#Jack not plugged in: + +#$ amixer -c 0 contents +#numid=29,iface=CARD,name='Front Headphone Jack' +# ; type=BOOLEAN,access=r-------,values=1 +# : values=off +#... +#So for that specific one I could do: + +#amixer -c 0 contents | \ +#awk -F"," ' +#$1 == "numid=own" { 此處的own的序號必須自己尋找 +# c=1 +#} c && /: values/ { +# split($0, a, "=") +# print a[2]; +# exit +#}' +#giving output of on or off. +# diff --git a/i3/Blocks/keystate b/i3/Blocks/keystate new file mode 100644 index 0000000..243712b --- /dev/null +++ b/i3/Blocks/keystate @@ -0,0 +1,21 @@ +#!/bin/bash + +TYPE="${BLOCK_INSTANCE:-caps}" + +lockLine=$(xset -q | grep "Num Lock") + +capsLock=$(echo "${lockLine}" | awk -F ' ' '{print $4}') +numLock=$(echo "${lockLine}" | awk -F ' ' '{print $8}') + +if [[ "${capsLock}" == "on" && "${numLock}" == "on" ]]; then + echo " " + echo "" +elif [[ "${capsLock}" == "on" ]]; then + echo "" + echo "" +elif [[ "${numLock}" == "on" ]]; then + echo "" + echo "" +else + exit +fi \ No newline at end of file diff --git a/i3/Blocks/mediaplayer b/i3/Blocks/mediaplayer new file mode 100644 index 0000000..718e335 --- /dev/null +++ b/i3/Blocks/mediaplayer @@ -0,0 +1,154 @@ +#!/usr/bin/env perl +# Copyright (C) 2014 Tony Crisci +# Copyright (C) 2015 Thiago Perrotta + +# 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 . + +# Requires playerctl binary to be in your path (except cmus) +# See: https://github.com/acrisci/playerctl + +# Set instance=NAME in the i3blocks configuration to specify a music player +# (playerctl will attempt to connect to org.mpris.MediaPlayer2.[NAME] on your +# DBus session). + +use Time::HiRes qw(usleep); +use Env qw(BLOCK_INSTANCE); + +use constant DELAY => 50; # Delay in ms to let network-based players (spotify) reflect new data. +use constant SPOTIFY_STR => 'spotify'; + +my @metadata = (); +my $player_arg = ""; + +if ($BLOCK_INSTANCE) { + $player_arg = "--player='$BLOCK_INSTANCE'"; +} + +sub buttons { + my $method = shift; + + if($method eq 'mpd') { + if ($ENV{'BLOCK_BUTTON'} == 1) { + system("mpc prev"); + } elsif ($ENV{'BLOCK_BUTTON'} == 2) { + system("mpc toggle"); + } elsif ($ENV{'BLOCK_BUTTON'} == 3) { + system("mpc next"); + } elsif ($ENV{'BLOCK_BUTTON'} == 4) { + system("mpc volume +10"); + } elsif ($ENV{'BLOCK_BUTTON'} == 5) { + system("mpc volume -10"); + } + } elsif ($method eq 'cmus') { + if ($ENV{'BLOCK_BUTTON'} == 1) { + system("cmus-remote --prev"); + } elsif ($ENV{'BLOCK_BUTTON'} == 2) { + system("cmus-remote --pause"); + } elsif ($ENV{'BLOCK_BUTTON'} == 3) { + system("cmus-remote --next"); + } + } elsif ($method eq 'playerctl') { + if ($ENV{'BLOCK_BUTTON'} == 1) { + system("playerctl $player_arg previous"); + usleep(DELAY * 1000) if $BLOCK_INSTANCE eq SPOTIFY_STR; + } elsif ($ENV{'BLOCK_BUTTON'} == 2) { + system("playerctl $player_arg play-pause"); + } elsif ($ENV{'BLOCK_BUTTON'} == 3) { + system("playerctl $player_arg next"); + usleep(DELAY * 1000) if $BLOCK_INSTANCE eq SPOTIFY_STR; + } elsif ($ENV{'BLOCK_BUTTON'} == 4) { + system("playerctl $player_arg volume 0.01+"); + } elsif ($ENV{'BLOCK_BUTTON'} == 5) { + system("playerctl $player_arg volume 0.01-"); + } + } elsif ($method eq 'rhythmbox') { + if ($ENV{'BLOCK_BUTTON'} == 1) { + system("rhythmbox-client --previous"); + } elsif ($ENV{'BLOCK_BUTTON'} == 2) { + system("rhythmbox-client --play-pause"); + } elsif ($ENV{'BLOCK_BUTTON'} == 3) { + system("rhythmbox-client --next"); + } + } +} + +sub cmus { + my @cmus = split /^/, qx(cmus-remote -Q); + if ($? == 0) { + foreach my $line (@cmus) { + my @data = split /\s/, $line; + if (shift @data eq 'tag') { + my $key = shift @data; + my $value = join ' ', @data; + + @metadata[0] = $value if $key eq 'artist'; + @metadata[1] = $value if $key eq 'title'; + } + } + + if (@metadata) { + buttons('cmus'); + + # metadata found so we are done + print(join ' - ', @metadata); + exit 0; + } + } +} + +sub mpd { + my $data = qx(mpc current); + if (not $data eq '') { + buttons("mpd"); + print($data); + exit 0; + } +} + +sub playerctl { + buttons('playerctl'); + + my $artist = qx(playerctl $player_arg metadata artist); + # exit status will be nonzero when playerctl cannot find your player + exit(0) if $? || $artist eq '(null)'; + + push(@metadata, $artist) if $artist; + + my $title = qx(playerctl $player_arg metadata title); + exit(0) if $? || $title eq '(null)'; + + push(@metadata, $title) if $title; + + print(join(" - ", @metadata)) if @metadata; +} + +sub rhythmbox { + buttons('rhythmbox'); + + my $data = qx(rhythmbox-client --print-playing --no-start); + print($data); +} + +if ($player_arg eq '' or $player_arg =~ /mpd/) { + mpd; +} +elsif ($player_arg =~ /cmus/) { + cmus; +} +elsif ($player_arg =~ /rhythmbox/) { + rhythmbox; +} +else { + playerctl; +} diff --git a/i3/Blocks/memory b/i3/Blocks/memory new file mode 100644 index 0000000..afbd0f1 --- /dev/null +++ b/i3/Blocks/memory @@ -0,0 +1,69 @@ +#!/bin/sh +# Copyright (C) 2014 Julien Bonjean + +# 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 . + +TYPE="${BLOCK_INSTANCE:-mem}" + +awk -v type=$TYPE ' +/^MemTotal:/ { + mem_total=$2 +} +/^MemFree:/ { + mem_free=$2 +} +/^Buffers:/ { + mem_free+=$2 +} +/^Cached:/ { + mem_free+=$2 +} +/^SwapTotal:/ { + swap_total=$2 +} +/^SwapFree:/ { + swap_free=$2 +} +END { + if (type == "swap") { + free=swap_free/1024/1024 + used=(swap_total-swap_free)/1024/1024 + total=swap_total/1024/1024 + } else { + free=mem_free/1024/1024 + used=(mem_total-mem_free)/1024/1024 + total=mem_total/1024/1024 + } + + pct=0 + if (total > 0) { + pct=used/total*100 + } + + # full text + printf("%.f%%\n",pct) + + # short text + printf("%.f%%\n", pct) + + # color + if (pct > 90) { + print("#FF0000\n") + } else if (pct > 80) { + print("#FFAE00\n") + } else if (pct > 70) { + print("#FFF600\n") + } +} +' /proc/meminfo diff --git a/i3/Blocks/microphone b/i3/Blocks/microphone new file mode 100644 index 0000000..76ff3f9 --- /dev/null +++ b/i3/Blocks/microphone @@ -0,0 +1,26 @@ +#!/bin/bash + +# Left click +if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then + amixer -q sset Capture 5%+ +# Middle click +elif [[ "${BLOCK_BUTTON}" -eq 2 ]]; then + amixer -q sset Capture toggle +# Right click +elif [[ "${BLOCK_BUTTON}" -eq 3 ]]; then + amixer -q sset Capture 5%- +fi + +statusLine=$(amixer get Capture | tail -n 1) +status=$(echo "${statusLine}" | grep -wo "on") +volume=$(echo "${statusLine}" | awk -F ' ' '{print $5}' | tr -d '[]%') + +if [[ "${status}" == "on" ]]; then + echo "${volume}%" + echo "${volume}%" + echo "" +else + echo "off" + echo "off" + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/notifier b/i3/Blocks/notifier new file mode 100644 index 0000000..20cc9d6 --- /dev/null +++ b/i3/Blocks/notifier @@ -0,0 +1,188 @@ +#!/bin/bash +# IMPORTANT: +# To make this block work, you have to edit your block-command. +# It should point to this file. For best performance, only use it on blocks +# you want to monitor. +# +# Example: +# command=~/.i3-blocks/blocks/notifier $BLOCK_NAME +echo "ss" +echo "ss" +echo "" + +BLOCK_NAME="${1}" + +if [[ "${BLOCK_NAME}" == "" ]] || [[ "${BLOCK_NAME}" == "notifier" ]]; then + exit 1 +fi + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +BLOCK_PATH="${SCRIPT_DIR}/${BLOCK_NAME}" + +if [[ ! -f "${BLOCK_PATH}" ]]; then + exit 1 +fi + +BLOCK_OUT=$(bash "${BLOCK_PATH}") +BLOCK_URGENT=$? + +# Nothing to display. +if [[ "${BLOCK_OUT}" == "" ]]; then + exit "${BLOCK_URGENT}" +fi + +NOTIFY=0 + +NOTIFY_CHANGES="weather display" +NOTIFY_ALWAYS="" +NOTIFY_NEVER="launcher playerctl scroll" + +if [[ "${NOTIFY_NEVER}" != *${BLOCK_NAME}* ]]; then + BLOCK_UCFIRST=$(echo "${BLOCK_NAME}" | head -c 1 | tr [a-z] [A-Z]; echo "${BLOCK_NAME}" | tail -c +2) + + CHECK_SUM=$(echo "${BLOCK_NAME}-${BLOCK_INSTANCE}" | md5sum | awk '{print $1}') + CACHE_FILE="/tmp/.notify-cache-${CHECK_SUM}" + + BLOCK_DESC=$(echo "${BLOCK_OUT}" | head -n 1) + BLOCK_VALUE=$(echo "${BLOCK_OUT}" | tail -n 1) + BLOCK_ICON="" + + if [[ "${NOTIFY_ALWAYS}" == *${BLOCK_NAME}* ]]; then + NOTIFY=1 + elif [[ "${BLOCK_URGENT}" -gt 0 ]]; then + NOTIFY=1 + fi + + VALUE_CHANGED=0 + HAS_CACHEFILE=0 + if [[ -f "${CACHE_FILE}" ]]; then + HAS_CACHEFILE=1 + CACHED_VALUE=$(cat "${CACHE_FILE}") + #MODIFIED_TIME=$(stat -c '%Y' "${CACHE_FILE}") + #CURRENT_TIME=$(date +%s) + #ELAPSED_TIME=$((MODIFIED_TIME - CURRENT_TIME)) + if [[ "${BLOCK_VALUE}" != "${CACHED_VALUE}" ]]; then + VALUE_CHANGED=1 + if [[ "${NOTIFY_CHANGES}" == *${BLOCK_NAME}* ]]; then + NOTIFY=1 + fi + fi + elif [[ "${NOTIFY_CHANGES}" == *${BLOCK_NAME}* ]]; then + NOTIFY=1 + fi + + if [[ "${NOTIFY}" -eq 1 ]]; then + if [[ "${BLOCK_NAME}" == "audio" ]]; then + BLOCK_MESSAGE="Audio level changed to ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "bandwidth" ]]; then + BLOCK_MESSAGE="Traffic went to ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "battery" ]]; then + BLOCK_MESSAGE="Energy changed to ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "countdown" ]]; then + BLOCK_MESSAGE="Remaining time is now ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "cpu" ]]; then + BLOCK_MESSAGE="CPU utilization is now ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "feed" ]]; then + BLOCK_MESSAGE="Newest article is ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "mail" ]]; then + BLOCK_MESSAGE="Unread emails went to ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "memory" ]]; then + BLOCK_MESSAGE="Memory utilization is now ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "packages" ]]; then + BLOCK_MESSAGE="${BLOCK_VALUE} packages are now ready to update." + elif [[ "${BLOCK_NAME}" == "space" ]]; then + BLOCK_MESSAGE="Space utilization is now ${BLOCK_INSTANCE}." + elif [[ "${BLOCK_NAME}" == "ssid" ]]; then + BLOCK_MESSAGE="SSID changed to ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "temperature" ]]; then + BLOCK_MESSAGE="Sensor temperature changed to ${BLOCK_VALUE}." + elif [[ "${BLOCK_NAME}" == "trash" ]]; then + BLOCK_MESSAGE="${BLOCK_VALUE} items are now in the trash." + else + BLOCK_MESSAGE="${BLOCK_UCFIRST} is now ${BLOCK_VALUE}." + fi + + if [[ "${BLOCK_NAME}" == "audio" ]]; then + BLOCK_ICON="audio-volume-high-symbolic" + elif [[ "${BLOCK_NAME}" == "bandwidth" ]]; then + BLOCK_ICON="network-wireless-acquiring-symbolic" + elif [[ "${BLOCK_NAME}" == "battery" ]]; then + BLOCK_ICON="battery-symbolic" + elif [[ "${BLOCK_NAME}" == "bluetooth" ]]; then + BLOCK_ICON="bluetooth-active-symbolic" + elif [[ "${BLOCK_NAME}" == "brightness" ]]; then + BLOCK_ICON="display-brightness-symbolic" + elif [[ "${BLOCK_NAME}" == "cmus" ]]; then + BLOCK_ICON="emblem-music-symbolic" + elif [[ "${BLOCK_NAME}" == "countdown" ]]; then + BLOCK_ICON="document-open-recent-symbolic" + elif [[ "${BLOCK_NAME}" == "cpu" ]]; then + BLOCK_ICON="indicator-cpufreq" + elif [[ "${BLOCK_NAME}" == "datetime" ]]; then + BLOCK_ICON="system-run-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "device" ]]; then + BLOCK_ICON="system-run-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "display" ]]; then + BLOCK_ICON="video-display-symbolic" + elif [[ "${BLOCK_NAME}" == "feed" ]]; then + BLOCK_ICON="folder-documents-symbolic" + elif [[ "${BLOCK_NAME}" == "firewall" ]]; then + BLOCK_ICON="changes-prevent-symbolic.svg" # TODO + elif [[ "${BLOCK_NAME}" == "ip-address" ]]; then + BLOCK_ICON="avatar-default-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "keystate" ]]; then + BLOCK_ICON="format-text-underline-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "launcher" ]]; then + BLOCK_ICON="system-run-symbolic" + elif [[ "${BLOCK_NAME}" == "load" ]]; then + BLOCK_ICON="indicator-cpufreq" # TODO + elif [[ "${BLOCK_NAME}" == "locale" ]]; then + BLOCK_ICON="format-text-larger-symbolic" + elif [[ "${BLOCK_NAME}" == "mail" ]]; then + BLOCK_ICON="mail-send-symbolic" + elif [[ "${BLOCK_NAME}" == "memory" ]]; then + BLOCK_ICON="drive-harddisk-solidstate-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "microphone" ]]; then + BLOCK_ICON="audio-input-microphone-symbolic" + elif [[ "${BLOCK_NAME}" == "network" ]]; then + BLOCK_ICON="network-wireless-connected-symbolic" + elif [[ "${BLOCK_NAME}" == "packages" ]]; then + BLOCK_ICON="view-refresh-symbolic" + elif [[ "${BLOCK_NAME}" == "playerctl" ]]; then + BLOCK_ICON="emblem-music-symbolic" + elif [[ "${BLOCK_NAME}" == "process" ]]; then + BLOCK_ICON="process-stop-symbolic" + elif [[ "${BLOCK_NAME}" == "space" ]]; then + BLOCK_ICON="drive-harddisk-solidstate-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "ssid" ]]; then + BLOCK_ICON="system-users-symbolic" + elif [[ "${BLOCK_NAME}" == "temperature" ]]; then + BLOCK_ICON="object-inverse" # TODO + elif [[ "${BLOCK_NAME}" == "trash" ]]; then + BLOCK_ICON="user-trash-symbolic" + elif [[ "${BLOCK_NAME}" == "usb" ]]; then + BLOCK_ICON="drive-removable-media-usb-symbolic-1" + elif [[ "${BLOCK_NAME}" == "vpn" ]]; then + BLOCK_ICON="dialog-password-symbolic" # TODO + elif [[ "${BLOCK_NAME}" == "weather" ]]; then + BLOCK_ICON="weather-few-clouds-symbolic" + elif [[ "${BLOCK_NAME}" == "webcam" ]]; then + BLOCK_ICON="camera-web-symbolic" + elif [[ "${BLOCK_NAME}" == "window" ]]; then + BLOCK_ICON="view-dual-symbolic" # TODO + fi + + if [[ "${BLOCK_URGENT}" -gt 0 ]]; then + notify-send -u critical -t 5000 -i "${BLOCK_ICON}" -a "i3block-${BLOCK_NAME}" "${BLOCK_UCFIRST}" "${BLOCK_MESSAGE}" + else + notify-send -u normal -t 3500 -i "${BLOCK_ICON}" -a "i3block-${BLOCK_NAME}" "${BLOCK_UCFIRST}" "${BLOCK_MESSAGE}" + fi + fi + + if [[ "${VALUE_CHANGED}" -eq 1 ]] || [[ "${HAS_CACHEFILE}" -eq 0 ]]; then + echo "${BLOCK_VALUE}" > "${CACHE_FILE}" + fi +fi + +echo "${BLOCK_OUT}" +exit "${BLOCK_URGENT}" \ No newline at end of file diff --git a/i3/Blocks/playerctl2 b/i3/Blocks/playerctl2 new file mode 100644 index 0000000..59c215e --- /dev/null +++ b/i3/Blocks/playerctl2 @@ -0,0 +1,42 @@ +#!/bin/bash +# Based on https://aur.archlinux.org/packages/playerctl/ + +INSTANCE="${BLOCK_INSTANCE}" +if [[ "${INSTANCE}" != "" ]]; then + ARGUMENTS="--player ${INSTANCE}" +fi + +ICON_PLAY="➤" +ICON_PAUSE="Ⅱ" +ICON_STOP="≠" +CUR_ICON="" + +if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then + $(playerctl ${ARGUMENTS} previous) +elif [[ "${BLOCK_BUTTON}" -eq 2 ]]; then + $(playerctl ${ARGUMENTS} play-pause) +elif [[ "${BLOCK_BUTTON}" -eq 3 ]]; then + $(playerctl ${ARGUMENTS} next) +elif [[ "${BLOCK_BUTTON}" -eq 4 ]]; then + $(playerctl ${ARGUMENTS} volume 0.2+) +elif [[ "${BLOCK_BUTTON}" -eq 5 ]]; then + $(playerctl ${ARGUMENTS} volume 0.2-) +fi + +PLAYER_STATUS=$(playerctl ${ARGUMENTS} status) +INFO_TITLE=$(playerctl ${ARGUMENTS} metadata title) +INFO_ALBUM=$(playerctl ${ARGUMENTS} metadata album) +INFO_ARTIST=$(playerctl ${ARGUMENTS} metadata artist) + +if [[ "${PLAYER_STATUS}" = "Paused" ]]; then + CUR_ICON="${ICON_PAUSE}" +elif [[ "${PLAYER_STATUS}" = "Playing" ]]; then + CUR_ICON="${ICON_PLAY}" +else + CUR_ICON="${ICON_STOP}" +fi + +if [[ "${INFO_TITLE}" != "" ]] && [[ "${INFO_ARTIST}" != "" ]]; then + echo "${INFO_ARTIST} - ${INFO_TITLE} ${CUR_ICON}" + echo "${INFO_ARTIST} - ${INFO_TITLE} ${CUR_ICON}" +fi \ No newline at end of file diff --git a/i3/Blocks/ssid b/i3/Blocks/ssid new file mode 100644 index 0000000..603cf04 --- /dev/null +++ b/i3/Blocks/ssid @@ -0,0 +1,26 @@ +#!/bin/bash + +if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then + termite -e nmtui +fi + +SSID_NAME=$(iwgetid -r) + +# You can put any urgent name so the block will give warning +# if a network with this name is used, like public wifi or alike. +# You can separate multiple values with \| +URGENT_VALUE="" + +if [[ "${SSID_NAME}" != "" ]]; then + echo "${SSID_NAME}" + echo "${SSID_NAME}" + echo "" + + if [[ "${URGENT_VALUE}" != "" ]] && [[ $(echo "${SSID_NAME}" | grep -we "${URGENT_VALUE}") != "" ]]; then + exit 33 + fi +else + echo "x" + echo "x" + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/sslocal b/i3/Blocks/sslocal new file mode 100644 index 0000000..47d1f15 --- /dev/null +++ b/i3/Blocks/sslocal @@ -0,0 +1,12 @@ +#!/bin/bash + +SSPID=$(pgrep -l sslocal |awk -F ' ' '{print $1}') + +if [[ "${SSPID}" != "" ]]; then + echo "" + echo "" +else + echo "" + echo "" + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/temperature b/i3/Blocks/temperature new file mode 100644 index 0000000..482499c --- /dev/null +++ b/i3/Blocks/temperature @@ -0,0 +1,69 @@ +#!/usr/bin/env perl +# Copyright 2014 Pierre Mavro +# Copyright 2014 Vivien Didelot +# Copyright 2014 Andreas Guldstrand +# Copyright 2014 Benjamin Chretien + +# 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 . + +use strict; +use warnings; +use utf8; +use Getopt::Long; + +binmode(STDOUT, ":utf8"); + +# default values +my $t_warn = 70; +my $t_crit = 90; +my $chip = ""; +my $temperature = -9999; + +sub help { + print "Usage: temperature [-w ] [-c ] [--chip ]\n"; + print "-w : warning threshold to become yellow\n"; + print "-c : critical threshold to become red\n"; + print "--chip : sensor chip\n"; + exit 0; +} + +GetOptions("help|h" => \&help, + "w=i" => \$t_warn, + "c=i" => \$t_crit, + "chip=s" => \$chip); + +# Get chip temperature +open (SENSORS, "sensors -u $chip |") or die; +while () { + if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) { + $temperature = $1; + last; + } +} +close(SENSORS); + +$temperature eq -9999 and die 'Cannot find temperature'; + +# Print short_text, full_text +print "$temperature°C\n" x2; + +# Print color, if needed +if ($temperature >= $t_crit) { + print "#FF0000\n"; + exit 33; +} elsif ($temperature >= $t_warn) { + print "#FFFC00\n"; +} + +exit 0; diff --git a/i3/Blocks/time b/i3/Blocks/time new file mode 100644 index 0000000..996f0b4 --- /dev/null +++ b/i3/Blocks/time @@ -0,0 +1,7 @@ +#!/bin/bash + +TIME=$(date '+%a %b %d %H:%M') + +echo "${TIME}" +echo "${TIME}" +echo "" \ No newline at end of file diff --git a/i3/Blocks/usb b/i3/Blocks/usb new file mode 100644 index 0000000..6175bfc --- /dev/null +++ b/i3/Blocks/usb @@ -0,0 +1,13 @@ +#!/bin/bash + +DEVICE_NAME="${BLOCK_INSTANCE:-Keyboard}" + +DEVICE_INFO=$(lsusb | grep -i kingston) + +if [[ "${DEVICE_INFO}" != "" ]]; then + echo "" + echo "" + echo "" +else + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/volume b/i3/Blocks/volume new file mode 100644 index 0000000..cb2a148 --- /dev/null +++ b/i3/Blocks/volume @@ -0,0 +1,52 @@ +#!/bin/bash + +# Left click +if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then + termite -e alsamixer +# amixer -q sset Master 10%+ +# Middle click +elif [[ "${BLOCK_BUTTON}" -eq 2 ]]; then + amixer -q sset Master toggle +# Right click +#elif [[ "${BLOCK_BUTTON}" -eq 2 ]]; then +# amixer -q sset Master 10%- +elif [[ "${BLOCK_BUTTON}" -eq 4 ]]; then + amixer -q sset Master 2%+ +elif [[ "${BLOCK_BUTTON}" -eq 5 ]]; then + amixer -q sset Master 2%- +fi + +statusLine=$(amixer get Master | tail -n 1) +status=$(echo "${statusLine}" | grep -wo "on") + +volume=$(echo "${statusLine}" | awk -F ' ' '{print $4}' | tr -d '[]%') + +VALUE=$(amixer -c 0 contents | \ +awk -F"," ' +$1 == "numid=14" { + c=1s +} c && /: values/ { + split($0, a, "=") + print a[2]; + exit +}') + + +if [[ "${status}" = "on" && "${VALUE}" = "on" ]]; then +# if [[ "${VALUE}" = "on" ]]; then + echo " ${volume}%" + echo " ${volume}%" + echo "" +# elif +# echo " ${volume}%" +# echo " ${volume}%" +# echo "" +# fi +elif [[ "${status}" = "on" && "${VALUE}" = "off" ]]; then + echo " ${volume}%" + echo "" +else + echo " 00%" + echo " 00%" + echo "" +fi \ No newline at end of file diff --git a/i3/Blocks/weather b/i3/Blocks/weather new file mode 100644 index 0000000..0a60427 --- /dev/null +++ b/i3/Blocks/weather @@ -0,0 +1,55 @@ +#!/bin/bash +# Based on http://openweathermap.org/current + +API_KEY="8ca3ef456139c165488fb6a6f00739ed" + +# Check on http://openweathermap.org/find +CITY_ID="${BLOCK_INSTANCE}" + +URGENT_LOWER=0 +URGENT_HIGHER=30 + +ICON_SUNNY="" +ICON_CLOUDY="" +ICON_RAINY="" +ICON_STORM="" +ICON_SNOW="" +ICON_FOG="" + +SYMBOL_CELSIUS="℃" +# WEATHER_URL="http://api.openweathermap.org/data/2.5/weather?id="1808773"&appid="44db6a862fba0b067b1930da0d769e98"$&units=metric" +WEATHER_URL="https://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&appid=${API_KEY}&units=metric" + +WEATHER_INFO=$(wget -qO- "${WEATHER_URL}") +WEATHER_MAIN=$(echo "${WEATHER_INFO}" | grep -o -e '\"main\":\"[a-Z]*\"' | awk -F ':' '{print $2}' | tr -d '"') +WEATHER_TEMP=$(echo "${WEATHER_INFO}" | grep -o -e '\"temp\":\-\?[0-9]*' | awk -F ':' '{print $2}' | tr -d '"') + +if [[ "${WEATHER_MAIN}" = *Snow* ]]; then + echo "${ICON_SNOW} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "${ICON_SNOW} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "" +elif [[ "${WEATHER_MAIN}" = *Rain* ]] || [[ "${WEATHER_MAIN}" = *Drizzle* ]]; then + echo "${ICON_RAINY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "${ICON_RAINY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "" +elif [[ "${WEATHER_MAIN}" = *Cloud* ]]; then + echo "${ICON_CLOUDY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "${ICON_CLOUDY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "" +elif [[ "${WEATHER_MAIN}" = *Clear* ]]; then + echo "${ICON_SUNNY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "${ICON_SUNNY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "" +elif [[ "${WEATHER_MAIN}" = *Fog* ]] || [[ "${WEATHER_MAIN}" = *Mist* ]]; then + echo "${ICON_FOG} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "${ICON_FOG} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "" +else + echo "${WEATHER_MAIN} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "${WEATHER_MAIN} ${WEATHER_TEMP}${SYMBOL_CELSIUS}" + echo "" +fi + +if [[ "${WEATHER_TEMP}" -lt "${URGENT_LOWER}" ]] || [[ "${WEATHER_TEMP}" -gt "${URGENT_HIGHER}" ]]; then + exit 33 +fi diff --git a/i3/Blocks/webcam b/i3/Blocks/webcam new file mode 100644 index 0000000..3c8eae9 --- /dev/null +++ b/i3/Blocks/webcam @@ -0,0 +1,17 @@ +#!/bin/bash + +if [[ -c /dev/video0 ]]; then + if [[ "$(fuser /dev/video0)" != "" ]]; then + echo "rec" + echo "rec" + echo "" + else + echo "on" + echo "on" + echo "" + else + echo "off" + echo "off" + echo "" + fi +fi \ No newline at end of file diff --git a/i3/Blocks/window b/i3/Blocks/window new file mode 100644 index 0000000..9ef155a --- /dev/null +++ b/i3/Blocks/window @@ -0,0 +1,9 @@ +#!/bin/bash + +ACTIVE_WINDOW=$(xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | cut -d '"' -f 2) + +if [[ "${ACTIVE_WINDOW}" != "" ]]; then + echo "${ACTIVE_WINDOW}" + echo "${ACTIVE_WINDOW}" + echo "" +fi \ No newline at end of file diff --git a/i3/README.md b/i3/README.md new file mode 100644 index 0000000..ca4eb6e --- /dev/null +++ b/i3/README.md @@ -0,0 +1,2 @@ +# Rice +# Rice diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..ef06c5f --- /dev/null +++ b/i3/config @@ -0,0 +1,478 @@ +##################################################################################################################### +################# Define the $mod variable/key ################# +##################################################################################################################### + +# Key to rule them all : Super(Windows) or Alt key? + +# Mod4 = Windows or Super key on keyboard +# Mod1 = Alt key on keyboard + +#Set Alt key +#set $mod Mod1 + +#set Super key +set $mod Mod4 + + +##################################################################################################################### +################# Define the movements keys - variables ################# +##################################################################################################################### + + +#This is setup for qwerty +set $up l +set $down k +set $left j +set $right semicolon + + + +##################################################################################################################### +################# Single and Dual screen ################# +##################################################################################################################### +exec --no-startup-id xrandr --output eDP-1-1 --mode 1920x1080 --rate 60.00 +exec xrandr --setprovideroutputsource modesetting NVIDIA-0 +exec xrandr --auto +exec --no-startup-id ~/.config/i3/scripts/conky_start.sh +exec --no-startup-id ~/.config/i3/scripts/conky_two.sh +#exec --no-startup-id ~/.config/i3/scripts/glavastart.sh + +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 + + + + +##################################################################################################################### +################# 3 menu's in arcolinux ################# +##################################################################################################################### + +# start dmenu +bindsym $mod+shift+d exec --no-startup-id dmenu_run -i -nb '#2E3440' -nf '#81a1c1' -sb '#81a1c1' -sf '#2E3440' -fn 'SourceCodePro:bold:pixelsize=16' + +# start rofi full +bindsym $mod+d exec --no-startup-id rofi -show drun -font "Source Code Pro 14" + + + +##################################################################################################################### +################# how to exit, logoff, suspend, ... ################# +##################################################################################################################### + +#Backup exit +#Press ctrl+alt+x - check toolbar for next choices +bindsym $mod+0 mode "$mode_system" + +set $mode_system System (k) lock, (l) logout, (u) suspend, (h) hibernate, (r) reboot, (s) shutdown +mode "$mode_system" { + + bindsym k exec --no-startup-id ~/.config/i3/scripts/i3exit.sh lock, mode "default" +# bindsym k exec i3lock -i ~/Pictures/walls/waterfall2.jpg + bindsym l exec --no-startup-id ~/.config/i3/scripts/i3exit.sh logout, mode "default" + bindsym u exec --no-startup-id ~/.config/i3/scripts/i3exit.sh suspend, mode "default" + bindsym h exec --no-startup-id ~/.config/i3/scripts/i3exit.sh hibernate, mode "default" + bindsym r exec --no-startup-id ~/.config/i3/scripts/i3exit.sh reboot, mode "default" + bindsym s exec --no-startup-id ~/.config/i3/scripts/i3exit.sh shutdown, mode "default" + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + + +# ArcoLinux Logout +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + + +##################################################################################################################### +################# reload changed configuration ################# +##################################################################################################################### + + +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + +# reload the configuration file +bindsym $mod+Shift+c reload + + + + +##################################################################################################################### +################# Stopping an application ################# +##################################################################################################################### + +# kill focused window +#bindsym $mod+Shift+q kill +bindsym $mod+q kill + + + +##################################################################################################################### +################# Moving around in i3 ################# +##################################################################################################################### + + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +#shortcuts +bindsym $mod+F1 exec --no-startup-id firefox + + + +##################################################################################################################### +################# moving around workspaces ################# +##################################################################################################################### + + +# next/previous workspace + +bindsym Mod1+Tab workspace next +bindsym Mod1+Shift+Tab workspace prev +bindsym $mod+Tab workspace back_and_forth + +#navigate workspaces next / previous +bindsym Mod1+Ctrl+Right workspace next +bindsym Mod1+Ctrl+Left workspace prev + + +##################################################################################################################### +################# Scratchpad ################# +##################################################################################################################### +# Make the currently focused window a scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show the first scratchpad window +bindsym $mod+minus scratchpad show + + +##################################################################################################################### +################# Tiling parameters ################# +##################################################################################################################### + +# orientation for new workspaces +default_orientation horizontal + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +# Super + F in arcolinux is execute thunar +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +# qwerty/azerty issue for letter z +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +#autotiling +exec_always --no-startup-id autotiling + +#################################################################################################################### +# resize window (you can also use the mouse for that) + +bindsym $mod+r mode "resize" + +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym $left resize shrink width 10 px or 10 ppt + bindsym $down resize grow height 10 px or 10 ppt + bindsym $up resize shrink height 10 px or 10 ppt + bindsym $right resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + + +##################################################################################################################### +################# choose the font ################# +##################################################################################################################### + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +# choose your font +#font pango:Noto Mono Regular 13 +font pango:Source Code Pro 13 + + + + + +##################################################################################################################### +################# autostart - execute applications at boot time ################# +##################################################################################################################### + + +#Authentication dialog +# exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & + + +##################################################################################################################### +################# applications keyboard shortcuts ################# +##################################################################################################################### + +bindsym $mod+Return exec --no-startup-id xfce4-terminal;focus + +bindsym control+mod1+u exec --no-startup-id pavucontrol + +bindsym $mod+Shift+Return exec --no-startup-id thunar;focus + + + +##################################################################################################################### +################# screenshots ################# +##################################################################################################################### + +bindsym Print exec gnome-screenshot +bindsym $mod+Print exec gnome-screenshot -i + + + +##################################################################################################################### +################# audio settings ################# +##################################################################################################################### + +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + + +##################################################################################################################### +################# light ################# +##################################################################################################################### + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec light -A 1 # increase screen brightness +bindsym XF86MonBrightnessDown exec light -U 1 # decrease screen brightness + + +##################################################################################################################### +################# bar toggle ################# +##################################################################################################################### + +# bar toggle, hide or show +bindsym $mod+b bar mode toggle + +bindsym $mod+i bar mode invisible + + + +##################################################################################################################### +################# Popups control ################# +##################################################################################################################### + +#Popups during fullscreen mode +popup_during_fullscreen smart + + + + +##################################################################################################################### +################# i3 gaps next ################# +##################################################################################################################### + +for_window [class="^.*"] border pixel 2 +gaps inner 24 +gaps outer 10 +#smart_gaps on +#smart_borders on + + + + + +##################################################################################################################### +################# i3 gaps change ################# +##################################################################################################################### + + + +set $mode_gaps Gaps: (o) outer, (i) inner +set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) +set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) +bindsym $mod+Shift+g mode "$mode_gaps" + +mode "$mode_gaps" { + bindsym o mode "$mode_gaps_outer" + bindsym i mode "$mode_gaps_inner" + bindsym Return mode "default" + bindsym Escape mode "default" +} + +mode "$mode_gaps_inner" { + bindsym plus gaps inner current plus 5 + bindsym minus gaps inner current minus 5 + bindsym 0 gaps inner current set 0 + + bindsym Shift+plus gaps inner all plus 5 + bindsym Shift+minus gaps inner all minus 5 + bindsym Shift+0 gaps inner all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_outer" { + bindsym plus gaps outer current plus 5 + bindsym minus gaps outer current minus 5 + bindsym 0 gaps outer current set 0 + + bindsym Shift+plus gaps outer all plus 5 + bindsym Shift+minus gaps outer all minus 5 + bindsym Shift+0 gaps outer all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} + + + + +##################################################################################################################### +################# picom of i3wm ################# +##################################################################################################################### + +#if you want transparency on non-focused windows, ... +exec_always --no-startup-id picom --config ~/.config/picom/picom.sample.conf +exec_always --no-startup-id ~/.config/i3/scripts/mouse.sh +exec_always feh --bg-fill /home/quinta/Downloads/735.png +exec_always --no-startup-id i3-auto-layout +exec_always --no-startup-id $HOME/.config/polybar/launch.sh dark +exec_always --no-startup-id i3-auto-layout +exec_always --no-startup-id dunst -config $HOME/.config/dunst/base16-nord.dunstrc +#note: my custom dunst configuration can be found here https://pastebin.com/P4i1N8ub curl it to $HOME/.config/dunst/base16-nord.dunstrc +exec_always --no-startup-id /usr/lib/kdeconnectd + +bindsym Mod4+Mod1+Shift+minus exec \ + i3-msg "gaps outer current minus 5" && \ + i3-msg "gaps inner current minus 5" + + bindsym Mod4+Mod1+Shift+plus exec \ + i3-msg "gaps outer current plus 5" && \ + i3-msg "gaps inner current plus 5" + + + +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +################# bar appearance ################# +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +set $base00 #101218 +set $base01 #1f222d +set $base02 #252936 +set $base03 #5e81ac +set $base04 #C0C5CE +set $base05 #d1d4e0 +set $base06 #C9CCDB +set $base07 #ffffff +set $base08 #ee829f +set $base09 #f99170 +set $base0A #ffefcc +set $base0B #a5ffe1 +set $base0C #97e0ff +set $base0D #97bbf7 +set $base0E #c0b7f9 +set $base0F #fcc09e +#its neon blue #4666FF + + + + ##START THEMING WM + + # Window color settings + # class border backgr. text indicator + client.focused #fbf1c7 #fbf1c7 #ffffff #fbf1c7 + client.unfocused #32302f #282828 #888888 #32302f + client.focused_inactive #282828 #282828 #888888 #282828 + client.placeholder #282828 # #888888 #82828 + client.urgent #900000 #900000 #ffffff #900000 + + client.background #242424 + + ##STOP THEMING WM + +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +######################################## THE END ########################################### +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### +##################################################################################################################### diff --git a/i3/config.original b/i3/config.original new file mode 100644 index 0000000..b15a4d9 --- /dev/null +++ b/i3/config.original @@ -0,0 +1,190 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font pango:monospace 8 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec termite + +# kill focused window +bindsym $mod+q kill + +# start dmenu (a program launcher) +bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +#bar { +# status_command i3status +#} + +#polybar +exec_always --no-startup-id $HOME/.config/polybar/launch.sh +exec_always feh --bg-fill /home/theglitchh/Pictures/arch.png diff --git a/i3/i3blocks.conf b/i3/i3blocks.conf new file mode 100644 index 0000000..12a89be --- /dev/null +++ b/i3/i3blocks.conf @@ -0,0 +1,120 @@ +# i3blocks config file +# +# Please see man i3blocks for a complete reference! +# The man page is also hosted at http://vivien.github.io/i3blocks +# +# List of valid properties: +# +align=center +# color +command=$HOME/.config/i3/Blocks/$BLOCK_NAME +# full_text +# instance +# interval +# label +markup=none +# min_widt +# name +separator=false +separator_block_width=18 +# short_text +# signal +# urgent + + +#plugins + +#[firewall] +#interval=10 +#label=F + +#[window] +#interval=1 + +#[notifier] +#label= +#interval=1 + +#[microphone] +#label=m +#interval=100 + +[playerctl2] +label= +interval=5 + +[mediaplayer] +label= +interval=1 + +#[weather] +#instance=1808773 +#label=寨 +#interval=2 + +#[weather] +#instance=1792947 +#label=津 +#interval=300 + +[bandwidth] +instance=wlp2s0;in +label= +interval=1 + +[bandwidth] +instance=wlp2s0;out +label= +interval=1 + +[ssid] +label= +interval=60 + +[volume] +interval=1 + +[brightness] +label= +interval=1 + +[battery] +label= +instance=0 +interval=5 + + +[temperature] +instance=Core +label= +interval=5 + +[memory] +label= +interval=30 + +[cpu] +label= +interval=2 + +[time] +interval=1 +label= + +[usb] +instance=kingston +interval=10 +separator_block_width=10 + +[fcitx] +interval=10 +separator_block_width=10 + +[sslocal] +interval=300 +separator_block_width=10 + +[keystate] +interval=3 + + diff --git a/i3/picom.conf b/i3/picom.conf new file mode 100644 index 0000000..5b222df --- /dev/null +++ b/i3/picom.conf @@ -0,0 +1,226 @@ +# Thank you code_nomad: http://9m.no/ꪯ鵞 +# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton + +################################# +# +# Backend +# +################################# + +# Backend to use: "xrender" or "glx". +# GLX backend is typically much faster but depends on a sane driver. +backend = "glx"; +#backend = "xrender" + +################################# +# +# GLX backend +# +################################# + +glx-no-stencil = true; + +# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. +# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, +# but a 20% increase when only 1/4 is. +# My tests on nouveau show terrible slowdown. +glx-copy-from-front = false; + +# GLX backend: Use MESA_copy_sub_buffer to do partial screen update. +# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. +# May break VSync and is not available on some drivers. +# Overrides --glx-copy-from-front. +# glx-use-copysubbuffermesa = true; + +# 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). +# Recommended if it works. +glx-no-rebind-pixmap = true; + +# GLX backend: GLX buffer swap method we assume. +# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). +# undefined is the slowest and the safest, and the default value. +# copy is fastest, but may fail on some drivers, +# 2-6 are gradually slower but safer (6 is still faster than 0). +# Usually, double buffer means 2, triple buffer means 3. +# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. +# Useless with --glx-use-copysubbuffermesa. +# Partially breaks --resize-damage. +# Defaults to undefined. +#glx-swap-method = "undefined"; + +################################# +# +# Shadows +# +################################# + +# Enabled client-side shadows on windows. +shadow = true; +# The blur radius for shadows. (default 12) +shadow-radius = 9; +# The left offset for shadows. (default -15) +shadow-offset-x = -9.5; +# The top offset for shadows. (default -15) +shadow-offset-y = -9; +# The translucency for shadows. (default .75) +shadow-opacity = 1; + +log-level = "warn"; +#change your username here +#log-file = "/home/erik/.config/compton.log"; + +# Set if you want different colour shadows +# shadow-red = 0.0; +# shadow-green = 0.0; +# shadow-blue = 0.0; + +# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches +# (most applications are fine, only apps that do weird things with xshapes or argb are affected). +# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher. +shadow-exclude = [ + "! name~=''", + "name = 'Notification'", + "name = 'Plank'", + "name = 'Docky'", + "name = 'Kupfer'", + "name = 'xfce4-notifyd'", + "name *= 'VLC'", + "name *= 'compton'", + "class_g = 'Firefox' && argb", + "class_g = 'Conky'", + "class_g = 'Kupfer'", + "class_g = 'Synapse'", + "class_g ?= 'Notify-osd'", + "class_g ?= 'Cairo-dock'", + "class_g = 'Cairo-clock'", + "class_g ?= 'Xfce4-notifyd'", + "class_g ?= 'Xfce4-power-manager'", + "_GTK_FRAME_EXTENTS@:c", + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" +]; +# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) +shadow-ignore-shaped = false; + +################################# +# +# Opacity +# +################################# + +inactive-opacity = 1; +active-opacity = 1; +frame-opacity = 1; +inactive-opacity-override = false; + +# Dim inactive windows. (0.0 - 1.0) +# inactive-dim = 0.2; +# Do not let dimness adjust based on window opacity. +# inactive-dim-fixed = true; +# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. +# blur-background = true; +# Blur background of opaque windows with transparent frames as well. +# blur-background-frame = true; +# Do not let blur radius adjust based on window opacity. +blur-background-fixed = false; +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +################################# +# +# Fading +# +################################# + +# Fade windows during opacity changes. +fading = true; +# The time between steps in a fade in milliseconds. (default 10). +fade-delta = 5; +# Opacity change between steps while fading in. (default 0.028). +fade-in-step = 0.03; +# Opacity change between steps while fading out. (default 0.03). +fade-out-step = 0.03; +# Fade windows in/out when opening/closing +# no-fading-openclose = true; + +# Specify a list of conditions of windows that should not be faded. +fade-exclude = [ ]; + +################################# +# +# Other +# +################################# + +# Try to detect WM windows and mark them as active. +mark-wmwin-focused = true; +# Mark all non-WM but override-redirect windows active (e.g. menus). +mark-ovredir-focused = true; +# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. +# Usually more reliable but depends on a EWMH-compliant WM. +use-ewmh-active-win = true; +# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. +detect-rounded-corners = false; + +# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. +# This prevents opacity being ignored for some apps. +# For example without this enabled my xfce4-notifyd is 100% opacity no matter what. +detect-client-opacity = true; + +# Specify refresh rate of the screen. +# If not specified or 0, compton will try detecting this with X RandR extension. +#refresh-rate = 48; + +# Vertical synchronization: match the refresh rate of the monitor +# this breaks transparency in virtualbox - put a "#" before next line to fix that +vsync = true; + +# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. +# Reported to have no effect, though. +dbe = true; + +# Limit compton 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 = true; + +# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. +# Known to cause flickering when redirecting/unredirecting windows. +unredir-if-possible = false; + +# Specify a list of conditions of windows that should always be considered focused. +focus-exclude = [ ]; + +# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. +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 = true; + +################################# +# +# Window type settings +# +################################# + +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true;}; + dock = { shadow = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 1; } + dropdown_menu = { opacity = 1; } +}; + +###################### +# +# XSync +# See: https://github.com/yshui/compton/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d +# +###################### + +# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users. +xrender-sync-fence = true; diff --git a/i3/scripts/i3exit.sh b/i3/scripts/i3exit.sh new file mode 100644 index 0000000..4528a53 --- /dev/null +++ b/i3/scripts/i3exit.sh @@ -0,0 +1,28 @@ +#!/bin/sh + + +case "$1" in + lock) + i3lock -i ~/Pictures/walls/waterfall2.jpg + ;; + logout) + i3-msg exit + ;; + suspend) + systemctl suspend + ;; + hibernate) + systemctl hibernate + ;; + reboot) + systemctl reboot + ;; + shutdown) + systemctl poweroff + ;; + *) + echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}" + exit 2 +esac + +exit 0 diff --git a/i3/scripts/mouse.sh b/i3/scripts/mouse.sh new file mode 100644 index 0000000..2d76c9f --- /dev/null +++ b/i3/scripts/mouse.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Version 0.1 Tuesday, 07 May 2013 +# Comments and complaints http://www.nicknorton.net +# GUI for mouse wheel speed using imwheel in Gnome +# imwheel needs to be installed for this script to work +# sudo apt-get install imwheel +# Pretty much hard wired to only use a mouse with +# left, right and wheel in the middle. +# If you have a mouse with complications or special needs, +# use the command xev to find what your wheel does. +# +### see if imwheel config exists, if not create it ### +if [ ! -f ~/.imwheelrc ] +then + +cat >~/.imwheelrc< + + + + + + + + + Linköping + Regional capital + Sweden + + + + + + + + + + + + + + + + + + 2022-01-07T17:14:00 + 2022-01-07T18:14:00 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/i3blocks/weather/weather.py b/i3blocks/weather/weather.py new file mode 100644 index 0000000..1fe2817 --- /dev/null +++ b/i3blocks/weather/weather.py @@ -0,0 +1,123 @@ +#!/usr/bin/python3 +''' Weather acquirer for: https://github.com/miklhh/i3blocks-config ''' +import os +import datetime +import xml.etree.ElementTree as ET +import requests + +# Forecast URL. +YR_URL = "https://www.yr.no/place/Sverige/%C3%96sterg%C3%B6tland/Link%C3%B6ping/forecast.xml" + +# Good to have data + funky emojicons. +FORECAST_CACHE_FILE = os.path.dirname(os.path.realpath(__file__)) + "/forecast.xml" + +# Emojis associatted with weather # Day # Night +WEATHER_TYPES = { "Fair" : ["☀️", "🌙"], #pylint: disable=C0326 + "Partly cloudy" : ["⛅", "☁️"], #pylint: disable=C0326 + "Clear sky" : ["☀️", "🌙"], #pylint: disable=C0326 + "Cloudy" : ["☁️", "☁️"], #pylint: disable=C0326 + "Light rain" : ["🌧️", "🌧️"], #pylint: disable=C0326 + "Rain" : ["🌧️", "🌧️"], #pylint: disable=C0326 + "Heavy Rain" : ["🌧️", "🌧️"], #pylint: disable=C0326 + "Light snow" : ["🌨️", "🌨️"], #pylint: disable=C0326 + "Snow" : ["🌨️", "🌨️"], #pylint: disable=C0326 + "Heavy snow" : ["🌨️", "🌨️"], #pylint: disable=C0326 + "Foggy" : ["🌫️", "🌫️"], #pylint: disable=C0326 + "Fog" : ["🌫️", "🌫️"], #pylint: disable=C0326 + "Light snow showers" : ["🌨️", "🌨️"]} #pylint: disable=C0326 + + +def get_xml_root(): + """ Returns a weather XML root, cached from old data if necessary. """ + yr_response = 0 + try: + # Request data from YR. + yr_response = requests.get(YR_URL) + if yr_response.status_code != 200: + raise RuntimeError('Error: YR status code ' + str(yr_response.status_code)) + + # New response, store in cache file and return XML root. + with open(FORECAST_CACHE_FILE, "w") as file_handle: + file_handle.write(yr_response.text) + return ET.fromstring(yr_response.text) + + except requests.ConnectionError: + # Probably just no internet. Use cached forecast. + if os.path.isfile(FORECAST_CACHE_FILE): + with open(FORECAST_CACHE_FILE) as file_handle: + yr_response = file_handle.read() + # Print recycle emoji and continue using cached forecast. + print("(♻️)", end=" ") + return ET.fromstring(yr_response) + + # Dead end, no XML-root acquired. + raise RuntimeError('No forecast data available.') + + +def main(): + """ Entry point for program. """ + # Get the XML root. + try: + xml_root = get_xml_root() + except RuntimeError as exception: + print(exception) + + # Parse the sun rise and set time. Appearntly, they are not always available and + # so we need to make sure they exist in the recieved data. + rise_fall_available = True + sun_rise_time = sun_set_time = "" + try: + sun_rise_time = xml_root.find("sun").attrib.get("rise") + sun_rise_time = sun_rise_time[sun_rise_time.find('T')+1 : len(sun_rise_time)-3] + sun_set_time = xml_root.find("sun").attrib.get("set") + sun_set_time = sun_set_time[sun_set_time.find('T')+1 : len(sun_set_time)-3] + except (ET.ParseError, AttributeError): + rise_fall_available = False + + # Get the current weather information. + forecast = xml_root.find("forecast").find("tabular").find("time") + weather = forecast.find("symbol").attrib.get("name") + temperature = forecast.find("temperature").attrib.get("value") + wind_direction = forecast.find("windDirection").attrib.get("code") + wind_speed = forecast.find("windSpeed").attrib.get("mps") + precipitation = forecast.find("precipitation").attrib.get("value") + + # Night time? + is_night = 0 + now = datetime.datetime.now() + if rise_fall_available: + # Use sun rise and fall time to determine. + sun_rise = datetime.datetime.strptime(sun_rise_time, "%H:%M") + sun_set = datetime.datetime.strptime(sun_set_time, "%H:%M") + is_night = 1 if now.time() < sun_rise.time() or sun_set.time() < now.time() else 0 + else: + # No rise/fall time available. Approximate daytime as [07:00 - 21:00]. + sun_rise = datetime.datetime.strptime("07:00", "%H:%M") + sun_set = datetime.datetime.strptime("21:00", "%H:%M") + is_night = 1 if now.time() < sun_rise.time() or sun_set.time() < now.time() else 0 + + # Print the weather. + if weather in WEATHER_TYPES: + # Emoji is avaiable for usage. + print(weather + ": " + WEATHER_TYPES.get(weather)[is_night] + " ", end="") + else: + # No emoji available, use regular text. + print(weather + " ", end="") + + # Print the temperature and sun times. + print(temperature, end="°C ") + + # Print the sun rise and set time. + if rise_fall_available: + print("[" + sun_rise_time + " 🌅 " + sun_set_time + "]", end=" ") + + # Print the precipitation (if there is any). + if precipitation != "0": + # Print with a wet umbrella + print("| ☔ " + precipitation + "mm", end=" ") + + # Print wind data. + print("| 🍃 " + wind_speed + "m/s " + "(" + wind_direction + ")", end="") + +# Go gadget, go! +main() diff --git a/i3blocks/weather/weather_info.sh b/i3blocks/weather/weather_info.sh new file mode 100644 index 0000000..328f617 --- /dev/null +++ b/i3blocks/weather/weather_info.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo " $(~/.config/i3blocks/weather/weather.py) " diff --git a/i3blocks/weather/weather_signaler b/i3blocks/weather/weather_signaler new file mode 100644 index 0000000..55ddb0a Binary files /dev/null and b/i3blocks/weather/weather_signaler differ diff --git a/i3blocks/weather/weather_signaler.c b/i3blocks/weather/weather_signaler.c new file mode 100644 index 0000000..fa22c63 --- /dev/null +++ b/i3blocks/weather/weather_signaler.c @@ -0,0 +1,102 @@ +#include +#include +#include +#include +#include + +// Sleep time between daemon updates. +#define SLEEP_TIME_S 300 + +// Test for internet connection. Returns true if connection is established. +static int test_internet_connection() +{ + const char *cmd = "nc -zw1 google.com 443 1> /dev/null 2>&1"; + return !system(cmd); +} + +// Signal handler for signaling the weather applet. +static void timer_handler(int sig, siginfo_t *si, void *uc) +{ + (void) sig; // Ignore parameter. + (void) si; // Ignore parameter. + (void) uc; // Ignore parameter. + + // Test for internet connection till found or 20 times. + for (int i = 0; i < 20; ++i) + { + if (test_internet_connection()) + { + // Connection established. Break out. + break; + } + else + { + // Retry every second. + sleep(1); + } + } + + // Signal the weather applet. + const char *cmd = "pkill -RTMIN+2 i3blocks"; + if ( system(cmd) ) + { + // Error message should be printed to stdout since stdout is the way to + // interface with a user in i3blocks. + puts("WEATHER_SIGNALER ERROR\n"); + } +} + +int timer_init_launch( + timer_t *timer, + struct sigevent *sev, + struct sigaction *sa, + struct itimerspec *tspec) +{ + // Event initialization. + sev->sigev_notify = SIGEV_SIGNAL; + sev->sigev_signo = SIGRTMIN; + sev->sigev_value.sival_ptr = timer; + + // Signal action type initializaion. + sa->sa_flags = SA_SIGINFO; + sa->sa_sigaction = timer_handler; + sigemptyset(&sa->sa_mask); + if (sigaction(SIGRTMIN, sa, NULL) == -1) + return -1; + + // Initialze timer. + if (timer_create(CLOCK_BOOTTIME, sev, timer) == -1) + return -1; + + // Start the timer. + tspec->it_value.tv_sec = SLEEP_TIME_S; + tspec->it_value.tv_nsec = 0; + tspec->it_interval.tv_sec = SLEEP_TIME_S; + tspec->it_interval.tv_nsec = 0; + if (timer_settime(*timer, 0, tspec, NULL) == -1) + return -1; + + // Initialization successful. + return 0; +} + +int main() +{ + timer_t timer; + struct sigevent sev; + struct sigaction sa; + struct itimerspec tspec; + + // Initialize signaler + if (timer_init_launch(&timer, &sev, &sa, &tspec)) + exit(EXIT_FAILURE); + + // Signal on daemon launch. + sleep(1); + timer_handler(0, NULL, NULL); + + while(1) + { + sleep(100); + } +} diff --git a/neofetch/config.conf b/neofetch/config.conf new file mode 100644 index 0000000..cdba4c6 --- /dev/null +++ b/neofetch/config.conf @@ -0,0 +1,864 @@ +# 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 "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # 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 +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# 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" + + +# Distro + + +# 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" + + +# Uptime + + +# 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" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# 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" + + +# Shell + + +# 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" + + +# CPU + + +# 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" + +# 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 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="off" + + +# GPU + + +# 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" + + +# Resolution + + +# 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="off" + + +# Gtk Theme / Icons / Font + + +# 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 gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# 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 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# 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 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" + + +# Song + + +# 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 +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# 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%" + +# 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=() + + +# Text Colors + + +# 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 Options + + +# 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" + +# 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=":" + + +# Color Blocks + + +# 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" + +# 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 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" + +# Progress Bars + + +# 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" + +# 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" + + +# 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" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', '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" + + +# Ascii Options + + +# 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 OS", +# "AOSC OS/Retro", 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, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, 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, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, 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, SereneLinux, 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, Venom, 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) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# 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" + +# 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" + +# 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 + +# 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= + + +# Misc Options + +# 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" diff --git a/picom/picom.conf.original b/picom/picom.conf.original new file mode 100644 index 0000000..c19dbcd --- /dev/null +++ b/picom/picom.conf.original @@ -0,0 +1,512 @@ +################################# +# Animations # +################################# +# requires https://github.com/jonaburg/picom +# (These are also the default values) +transition-length = 300 +transition-pow-x = 0.1 +transition-pow-y = 0.1 +transition-pow-w = 0.1 +transition-pow-h = 0.1 +size-transition = true + + +################################# +# Corners # +################################# +# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom +corner-radius = 12.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 = 'code-oss'", + #"class_g = 'TelegramDesktop'", + #"class_g = 'firefox'", + "class_g = 'Thunderbird'" +]; +round-borders = 1; +round-borders-exclude = [ + #"class_g = 'TelegramDesktop'", +]; + +################################# +# Shadows # +################################# + + +# 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 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 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 + +# 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 + +# 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 + +# 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 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 + + +################################# +# Fading # +################################# + + +# 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.05; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.05; + +# 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 +] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 0.75; + +# 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. + +#If using these 2 below change their values in line 510 & 511 aswell +popup_menu = { opacity = 0.8; } +dropdown_menu = { opacity = 0.8; } + + +# 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 = 0.95; + +# 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 +]; + +# 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'" +]; + + +################################# +# Background-Blurring # +################################# + + +# 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 = 5; + # 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 = 'slop'", + "_GTK_FRAME_EXTENTS@:c" +]; + + +################################# +# General Settings # +################################# + +# 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"; + + +# 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 + +# 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; + +# 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; + +# 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 = 60 + +# 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 + +# 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 + +# 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 = [] + +# 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 + +# 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 = [] + +# 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 + +# 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 + +# 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 + +# 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 + +# 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 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 + +# 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 = true; shadow = false; } + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; diff --git a/picom/picom.sample.conf b/picom/picom.sample.conf new file mode 100644 index 0000000..97aa181 --- /dev/null +++ b/picom/picom.sample.conf @@ -0,0 +1,519 @@ +################################# +# Animations # +################################# +# requires https://github.com/jonaburg/picom +# (These are also the default values) +transition-length = 300 +transition-pow-x = 0.1 +transition-pow-y = 0.1 +transition-pow-w = 0.1 +transition-pow-h = 0.1 +size-transition = true + + +################################# +# Corners # +################################# +# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom +corner-radius = 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 = 'code-oss'", + #"class_g = 'TelegramDesktop'", + #"class_g = 'firefox'", + "class_g = 'Thunderbird'" +]; +round-borders = 0; +round-borders-exclude = [ + "class_g = 'Alacritty'", + #"class_g = 'TelegramDesktop'", +]; + +################################# +# Shadows # +################################# + + +# 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 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 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 + +# 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 + +# 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 + +# 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 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 + + +################################# +# Fading # +################################# + + +# 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 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 + +# 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 + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# 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; + +# 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 510 & 511 aswell +popup_menu = { opacity = 0.8; } +dropdown_menu = { opacity = 0.8; } + + +# 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; + +# 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 +]; + +# 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 = [ + "100: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'", + "100:class_g = 'Polybar'", + "100:class_g = 'code-oss'", + "100:class_g = 'Meld'", + "100:class_g = 'Rofi'", + "100:class_g = 'TelegramDesktop'", + "80:class_g = 'conky'", + "100:class_g = 'kitty'", + "100:class_g = 'Gedit'", + "100:class_g = 'Org.gnome.Nautilus'", + "85:class_g = 'Spotify'", + "100:class_g = 'Code'", + "100:class_g = 'jetbrains-webstorm'", + "100:class_g = 'Thunderbird'" +]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 13 +# +# 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 = 'slop'", + "_GTK_FRAME_EXTENTS@:c" +]; + + +################################# +# General Settings # +################################# + +# 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"; + + +# Enable/disable VSync. +# vsync = false +vsync = true + +# 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; + +# 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; + +# 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 + +# 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 + +# 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 + +# 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 = [] + +# 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 + +# 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 = [] + +# 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 + +# 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 + +# 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 + +# 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 + +# 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 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 + +# 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 = 0.9; focus = true; full-shadow = false; }; + dock = { shadow = false; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.9; } + dropdown_menu = { opacity = 0.9; } +}; diff --git a/polybar/dark-colors b/polybar/dark-colors new file mode 100644 index 0000000..043fb2a --- /dev/null +++ b/polybar/dark-colors @@ -0,0 +1,24 @@ +; vim:ft=dosini + +[colors] +background = #282828 +buffer = #3c3836 +foreground = #ebdbb2 +nord6 = #fbf1c7 +;yellow lite +nord7 = #8ec07c +;green light +nord8 = #83a598 +;blue light +nord9 = #458588 +;solaris green +urgent = #fb4934 +;red +warning = #fe8019 +;orange +notify = #fabd2f +;yellow +success = #b8bb26 +; green light +function = #d3869b +; purple diff --git a/polybar/dark-config b/polybar/dark-config new file mode 100644 index 0000000..4cbe545 --- /dev/null +++ b/polybar/dark-config @@ -0,0 +1,73 @@ +; vim:ft=dosini +[global-wm] +include-file = $HOME/.config/polybar/dark-colors +include-file = $HOME/.config/polybar/nord-top +include-file = $HOME/.config/polybar/nord-down +include-file = $HOME/.config/polybar/nord-config + +[bar/base] +theme = dark +monitor = ${config.monitor} +width = ${config.width} +height = ${config.height} +offset-x = ${config.offset-x} +offset-y = ${config.offset-y} +radius = ${config.radius} + +fixed-center = ${config.fixed-center} +dpi = ${config.dpi} + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = ${config.line-size} + +padding = 0 +override-redirect = ${config.override-redirect} +wm-restack = ${config.wm-restack} + +tray-padding = 3 +tray-detached = false +tray-maxsize = 22 + +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +[bar/nord-top] +inherit = bar/base + +module-margin = 2 + +font-0 = WenQuanYiMicroHei:size=12 +font-1 = FontAwesome6FreeSolid:pixelsize=12;1 +font-2 = FontAwesome6FreeRegular:pixelsize=12;1 +font-3 = FontAwesome6Brands:pixelsize=8;1 +font-4 = FiraCodeRegular:pixelsize=12 + +modules-left = ${config.top-left} +modules-center = ${config.top-center} +modules-right = ${config.top-right} + +tray-position = ${config.systray-top} + +[bar/nord-down] +inherit = bar/base + +bottom = true + +module-margin = 2 + + +font-0 = WenQuanYiMicroHei:size=12 +font-1 = FontAwesome6FreeSolid:pixelsize=12;1 +font-2 = FontAwesome6Brands:pixelsize=8;1 +font-3 = Weather Icons:style=Regular:size=12;1 +font-4 = FiraCodeRegular:pixelsize=12 + +modules-left = ${config.bottom-left} +modules-center = ${config.bottom-center} +modules-right = ${config.bottom-right} + +tray-position = ${config.systray-bottom} diff --git a/polybar/launch.sh b/polybar/launch.sh new file mode 100644 index 0000000..015dddf --- /dev/null +++ b/polybar/launch.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Terminate already running bar instances +killall -q polybar +killall -q glava +# Wait until the processes have been shut down +while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + +# Launch bar1 and bar2 +if [ "$1" == "light" ] +then + polybar -c $HOME/.config/polybar/light-config nord-top & + polybar -c $HOME/.config/polybar/light-config nord-down & + glava --desktop & +else + polybar -c $HOME/.config/polybar/dark-config nord-top & + polybar -c $HOME/.config/polybar/dark-config nord-down & + glava --desktop & +fi + +echo "Bars launched..." diff --git a/polybar/light-colors b/polybar/light-colors new file mode 100644 index 0000000..9dddeef --- /dev/null +++ b/polybar/light-colors @@ -0,0 +1,15 @@ +; vim:ft=dosini + +[colors] +background = #1D282828 +buffer = #3c3836 +foreground = #ebdbb2 +nord6 = #fbf1c7 +nord7 = #8ec07c +nord8 = #83a598 +nord9 = #458588 +urgent = #fb4934 +warning = #fe8019 +notify = #fabd2f +success = #b8bb26 +function = #d3869b diff --git a/polybar/light-config b/polybar/light-config new file mode 100644 index 0000000..7a77f31 --- /dev/null +++ b/polybar/light-config @@ -0,0 +1,73 @@ +; vim:ft=dosini +[global-wm] +include-file = $HOME/.config/polybar/light-colors +include-file = $HOME/.config/polybar/nord-top +include-file = $HOME/.config/polybar/nord-down +include-file = $HOME/.config/polybar/nord-config + +[bar/base] +theme = light +monitor = ${config.monitor} +width = ${config.width} +height = ${config.height} +offset-x = ${config.offset-x} +offset-y = ${config.offset-y} +radius = ${config.radius} + +fixed-center = ${config.fixed-center} +dpi = ${config.dpi} + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = ${config.line-size} + +padding = 0 +override-redirect = ${config.override-redirect} +wm-restack = ${config.wm-restack} + +tray-padding = 3 +tray-detached = false +tray-maxsize = 22 + +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +[bar/nord-top] +inherit = bar/base +module-margin = 1 + +font-0 = FiraCodeRegular:pixelsize=12 +font-1 = FontAwesome6FreeSolid:pixelsize=12;1 +font-2 = FontAwesome6FreeRegular:pixelsize=12;1 +font-3 = FontAwesome6Brands:pixelsize=8;1 +font-4 = WenQuanYiMicroHei:size=12 + +modules-left = ${config.top-left} +modules-center = ${config.top-center} +modules-right = ${config.top-right} + +tray-position = ${config.systray-top} + +[bar/nord-down] +inherit = bar/base +bottom = true + +padding = 2 +module-margin = 2 + +font-0 = FiraCodeRegular:pixelsize=12 +font-1 = FontAwesome6FreeSolid:pixelsize=12;1 +font-2 = FontAwesome6FreeRegular:pixelsize=12;1 +font-3 = FontAwesome6Brands:pixelsize=8;1 +font-4 = Weather Icons:style=Regular:size=12;1 +font-5 = WenQuanYiMicroHei:size=12 + +modules-left = ${config.bottom-left} +modules-center = ${config.bottom-center} +modules-right = ${config.bottom-right} + +tray-position = ${config.systray-bottom} + diff --git a/polybar/nord-config b/polybar/nord-config new file mode 100644 index 0000000..ea2b786 --- /dev/null +++ b/polybar/nord-config @@ -0,0 +1,107 @@ +;vim:ft=dosini + +[config] +# DPI value for HiDPI screen +dpi = 87 +monitor = + +# bar position, apply globally +width = 100% +height = 3% +offset-x = 0 +offset-y = 0 +radius = 0.0 + +fixed-center = true +override-redirect = false +wm-restack = i3 + +# module list: +# alsa: Display current volume +# backlight: Display screen brightness +# date: Display date +# notify: Notify icon, can customize its binding +# network-short: Network connect icon, can customize its binding +# battery: Battery info +# keyboard: CapsLock indicator +# mpd: mpd status and controls +# i3: i3 workspace icons +# bspwm: bspwm workspace icons +# workspace-name: i3 current workspace name, need to be in the format like "1:Home" +# title: title of the active window +# network-detail: Download and upload speed +# weather: Display openweather info +# powermenu: menu to control system power +# info-hackspeed: Numper of characters clicked per minute +# daily-poem: Display poem +# temperature: Display internal temperature +# memory: Display memory usage +# cpu: Display cpu usage +# show-desktop: Display desktop (i3 only) +# clash-widget: showing clash service +# onedrive-widget: showing onedrive service +# clipmenu-widget: showing clipmenu service + +# Top modules +top-left = rofi-run i3 +top-center = spotify mpd +top-right = keyboard backlight alsa battery network-short date + +# Bottom modules +bottom-left = powermenu info-hackspeed weather +bottom-center = title +bottom-right = network-detail temperature memory cpu +systray-top = none +systray-bottom = right + +# global style +line-size = 3.5 + +# Modules configure option +# the default value in this section should work in most cases, +# if some of them doesn't suit your environment, you can change +# it from here. +# network interface, check by `ip link show` +interface = eno1 +# when the current battery capacity excess this value, +# the full-capacity format will be displayed. +battery-full-at = 95 + +# battery and adapter +battery-bat = BAT1 +battery-adp = ACAD + +# soundcard setting +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default +master-mixer = Master + +# mpd service connection setting +mpd-host = 127.0.0.1 +mpd-port = 6600 + +thermal-zone = 7 +# Base temperature for where to start the ramp (in degrees celsius) +base-temperature = 20 +# Threshold temperature to display warning label (in degrees celsius) +warn-temperature = 70 + +# GitHub personal token, generate from https://github.com/settings/tokens/new?scopes=notifications&description=Notifier+for+Polybar +# where select at least `notifications` option +github-token = 00ed987a6d7efd532c5b4ca0849c2803228d1b5d + +# notify module setting +notify-click-left = xdotool key control+grave + +# network module setting +network-click-left = i3-msg workspace 2 + +# i3 +# Only show workspaces defined on the same output as the bar +# +# Useful if you want to show monitor specific workspaces +# on different bars +# +# Default: false +i3-pin-workspaces = false diff --git a/polybar/nord-top b/polybar/nord-top new file mode 100644 index 0000000..67a0117 --- /dev/null +++ b/polybar/nord-top @@ -0,0 +1,374 @@ +; vim:ft=dosini +[module/i3] +type = internal/i3 + +pin-workspaces = ${config.i3-pin-workspaces} + +strip-wsnumbers = true + +index-sort = true +enable-click = true +enable-scroll = true +wrapping-scroll = true +reverse-scroll = true + +fuzzy-match = false + +; Available tags: +; (default) - gets replaced with +; (default) +format = + +; icons +ws-icon-0 = 1:Home; +ws-icon-1 = 2:Browser; +ws-icon-2 = 3:Coding; +ws-icon-3 = 4:Learning; +ws-icon-4 = 5:Fun; +ws-icon-5 = 25:Desktop; +ws-icon-default =  + +; color +label-focused =  +label-focused-underline = #fbf1c7 +label-focused-foreground = #ebdbb2 +label-focused-padding = 2 + +label-unfocused = • +label-unfocused-foreground = #ebdbb2 +label-unfocused-padding = 2 + +label-urgent =  +label-urgent-foreground = ${colors.urgent} +label-urgent-background = ${colors.foreground} +label-urgent-padding = 2 + +; seperator +label-separator = | +label-separator-foreground = #ebdbb2 + + +[module/pipewire] +type = custom/ipc + +label = "%output%" +label-font = 1 + +hook-0 = ~/.config/polybar/scripts/sound.sh +hook-1 = ~/.config/polybar/scripts/sound.sh up +hook-2 = ~/.config/polybar/scripts/sound.sh down +hook-3 = ~/.config/polybar/scripts/sound.sh mute +hook-4 = sleep 1 && ~/.config/polybar/scripts/sound.sh +initial = 5 + +scroll-up = exec polybar-msg action "#pipewire.hook.1" +scroll-down = exec polybar-msg action "#pipewire.hook.2" +click-left = exec polybar-msg action "#pipewire.hook.3" +click-right = exec pavucontrol & + +[module/kdeconnect] +type = custom/script +exec = "/home/sourav2k/.config/polybar/scripts/polybar-kdeconnect.sh -d" +tail = true + + +[module/bspwm] +type = internal/bspwm + +ws-icon-0 = I; +ws-icon-1 = II; +ws-icon-2 = III; +ws-icon-3 = IV; +ws-icon-4 = V; +ws-icon-5 = VI; +ws-icon-6 = VII; +ws-icon-7 = VIII; +ws-icon-8 = IX; +ws-icon-9 = X; + + +label-focused = %icon% +label-focused-underline = ${colors.nord7} +label-focused-foreground = ${colors.nord7} +label-focused-padding = 2 + +label-occupied = %icon% +label-occupied-underline = ${colors.nord9} +label-occupied-foreground = ${colors.nord9} +label-occupied-padding = 2 + +label-empty = %icon% +label-empty-foreground = ${colors.buffer} +label-empty-padding = 2 + +label-urgent =  +label-urgent-foreground = ${colors.urgent} +label-urgent-background = ${colors.foreground} +label-urgent-padding = 2 + +; seperator +label-separator = | +label-separator-foreground = ${colors.buffer} + +[module/workspace-name] +type = internal/i3 +strip-wsnumbers = true + +format = + +label-focused = %name% +label-focused-padding = 2 +label-focused-foreground = ${colors.nord7} +label-focused-underline = ${colors.nord7} + +label-unfocused = + +label-urgent = %name% +label-urgent-foreground = ${colors.urgent} +label-urgent-background = ${colors.foreground} +label-urgent-padding = 2 + +[module/title] +type = internal/xwindow +format-foreground = #fbf1c7 +format-underline = #fbf1c7 +format-padding = 4 + +label-maxlen = 30 +label-empty = Sourav2k @ Arch Linux (Pavilion) +label-empty-foreground = #00282828 + +[module/date] +type = internal/date +interval = 1.0 +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +date-alt = %r +date = %Y-%m-%d %a + + + +format =