Removed Linux & Unused tools.
I've switched to using NixOS. Configuration is managed by HomeManager.
This commit is contained in:
		
							parent
							
								
									34900333b7
								
							
						
					
					
						commit
						b932eeaf02
					
				| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_DIR :=  $(XDG_DIR)/jrnl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up:
 | 
					 | 
				
			||||||
	if (( $$+commands[jrnl] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Setting up jrnl"
 | 
					 | 
				
			||||||
		mkdir $(CONFIG_DIR)
 | 
					 | 
				
			||||||
		$(mk_link) $(SRC)/jrnl.yml $(CONFIG_DIR)/jrnl.yml
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "jrnl not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	rm -rf $(CONFIG_DIR)
 | 
					 | 
				
			||||||
							
								
								
									
										913
									
								
								kitty/kitty.conf
									
									
									
									
									
								
							
							
						
						
									
										913
									
								
								kitty/kitty.conf
									
									
									
									
									
								
							| 
						 | 
					@ -1,913 +0,0 @@
 | 
				
			||||||
# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Fonts {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: kitty has very powerful font management. You can configure
 | 
					 | 
				
			||||||
#: individual font faces and even specify special fonts for particular
 | 
					 | 
				
			||||||
#: characters.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# font_family      monospace
 | 
					 | 
				
			||||||
# bold_font        auto
 | 
					 | 
				
			||||||
# italic_font      auto
 | 
					 | 
				
			||||||
# bold_italic_font auto
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can specify different fonts for the bold/italic/bold-italic
 | 
					 | 
				
			||||||
#: variants. By default they are derived automatically, by the OSes
 | 
					 | 
				
			||||||
#: font system. Setting them manually is useful for font families that
 | 
					 | 
				
			||||||
#: have many weight variants like Book, Medium, Thick, etc. For
 | 
					 | 
				
			||||||
#: example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
font_family      Fira Code Regular Nerd Font Complete
 | 
					 | 
				
			||||||
bold_font        Fira Code Bold Nerd Font Complete
 | 
					 | 
				
			||||||
italic_font      Fira Code Regular Nerd Font Complete Italic
 | 
					 | 
				
			||||||
bold_italic_font Fira Code Medium Italic
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
font_size 12.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Font size (in pts)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# adjust_line_height  0
 | 
					 | 
				
			||||||
# adjust_column_width 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Change the size of each character cell kitty renders. You can use
 | 
					 | 
				
			||||||
#: either numbers, which are interpreted as pixels or percentages
 | 
					 | 
				
			||||||
#: (number followed by %), which are interpreted as percentages of the
 | 
					 | 
				
			||||||
#: unmodified values. You can use negative pixels or percentages less
 | 
					 | 
				
			||||||
#: than 100% to reduce sizes (but this might cause rendering
 | 
					 | 
				
			||||||
#: artifacts).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Map the specified unicode codepoints to a particular font. Useful
 | 
					 | 
				
			||||||
#: if you need special rendering for some symbols, such as for
 | 
					 | 
				
			||||||
#: Powerline. Avoids the need for patched fonts. Each unicode code
 | 
					 | 
				
			||||||
#: point is specified in the form U+<code point in hexadecimal>. You
 | 
					 | 
				
			||||||
#: can specify multiple code points, separated by commas and ranges
 | 
					 | 
				
			||||||
#: separated by hyphens. symbol_map itself can be specified multiple
 | 
					 | 
				
			||||||
#: times. Syntax is::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     symbol_map codepoints Font Family Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# box_drawing_scale 0.001, 1, 1.5, 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Change the sizes of the lines used for the box drawing unicode
 | 
					 | 
				
			||||||
#: characters These values are in pts. They will be scaled by the
 | 
					 | 
				
			||||||
#: monitor DPI to arrive at a pixel value. There must be four values
 | 
					 | 
				
			||||||
#: corresponding to thin, normal, thick, and very thick lines.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Cursor customization {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# cursor #cccccc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Default cursor color
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# cursor_text_color #111111
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Choose the color of text under the cursor. If you want it rendered
 | 
					 | 
				
			||||||
#: with the background color of the cell underneath instead, use the
 | 
					 | 
				
			||||||
#: special keyword: background
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# cursor_shape block
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The cursor shape can be one of (block, beam, underline)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# cursor_blink_interval      0.5
 | 
					 | 
				
			||||||
# cursor_stop_blinking_after 15.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The interval (in seconds) at which to blink the cursor. Set to zero
 | 
					 | 
				
			||||||
#: to disable blinking. Note that numbers smaller than repaint_delay
 | 
					 | 
				
			||||||
#: will be limited to repaint_delay. Stop blinking cursor after the
 | 
					 | 
				
			||||||
#: specified number of seconds of keyboard inactivity. Set to zero to
 | 
					 | 
				
			||||||
#: never stop blinking.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Scrollback {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# scrollback_lines 2000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Number of lines of history to keep in memory for scrolling back.
 | 
					 | 
				
			||||||
#: Memory is allocated on demand. Negative numbers are (effectively)
 | 
					 | 
				
			||||||
#: infinite scrollback. Note that using very large scrollback is not
 | 
					 | 
				
			||||||
#: recommended as it can slow down resizing of the terminal and also
 | 
					 | 
				
			||||||
#: use large amounts of RAM.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Program with which to view scrollback in a new window. The
 | 
					 | 
				
			||||||
#: scrollback buffer is passed as STDIN to this program. If you change
 | 
					 | 
				
			||||||
#: it, make sure the program you use can handle ANSI escape sequences
 | 
					 | 
				
			||||||
#: for colors and text formatting. INPUT_LINE_NUMBER in the command
 | 
					 | 
				
			||||||
#: line above will be replaced by an integer representing which line
 | 
					 | 
				
			||||||
#: should be at the top of the screen.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# scrollback_pager_history_size 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Separate scrollback history size, used only for browsing the
 | 
					 | 
				
			||||||
#: scrollback buffer (in MB). This separate buffer is not available
 | 
					 | 
				
			||||||
#: for interactive scrolling but will be piped to the pager program
 | 
					 | 
				
			||||||
#: when viewing scrollback buffer in a separate window. The current
 | 
					 | 
				
			||||||
#: implementation stores one character in 4 bytes, so approximatively
 | 
					 | 
				
			||||||
#: 2500 lines per megabyte at 100 chars per line. A value of zero or
 | 
					 | 
				
			||||||
#: less disables this feature. The maximum allowed size is 4GB.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# wheel_scroll_multiplier 5.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Modify the amount scrolled by the mouse wheel. Note this is only
 | 
					 | 
				
			||||||
#: used for low precision scrolling devices, not for high precision
 | 
					 | 
				
			||||||
#: scrolling on platforms such as macOS and Wayland. Use negative
 | 
					 | 
				
			||||||
#: numbers to change scroll direction.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# touch_scroll_multiplier 1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Modify the amount scrolled by a touchpad. Note this is only used
 | 
					 | 
				
			||||||
#: for high precision scrolling devices on platforms such as macOS and
 | 
					 | 
				
			||||||
#: Wayland. Use negative numbers to change scroll direction.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Mouse {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# url_color #0087BD
 | 
					 | 
				
			||||||
# url_style curly
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The color and style for highlighting URLs on mouse-over. url_style
 | 
					 | 
				
			||||||
#: can be one of: none, single, double, curly
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# open_url_modifiers kitty_mod
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The modifier keys to press when clicking with the mouse on URLs to
 | 
					 | 
				
			||||||
#: open the URL
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# open_url_with default
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The program with which to open URLs that are clicked on. The
 | 
					 | 
				
			||||||
#: special value default means to use the operating system's default
 | 
					 | 
				
			||||||
#: URL handler.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# copy_on_select no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Copy to clipboard on select. With this enabled, simply selecting
 | 
					 | 
				
			||||||
#: text with the mouse will cause the text to be copied to clipboard.
 | 
					 | 
				
			||||||
#: Useful on platforms such as macOS that do not have the concept of
 | 
					 | 
				
			||||||
#: primary selections. Note that this is a security risk, as all
 | 
					 | 
				
			||||||
#: programs, including websites open in your browser can read the
 | 
					 | 
				
			||||||
#: contents of the clipboard.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# rectangle_select_modifiers ctrl+alt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The modifiers to use rectangular selection (i.e. to select text in
 | 
					 | 
				
			||||||
#: a rectangular block with the mouse)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# select_by_word_characters :@-./_~?&=%+#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Characters considered part of a word when double clicking. In
 | 
					 | 
				
			||||||
#: addition to these characters any character that is marked as an
 | 
					 | 
				
			||||||
#: alpha-numeric character in the unicode database will be matched.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# click_interval -1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The interval between successive clicks to detect double/triple
 | 
					 | 
				
			||||||
#: clicks (in seconds). Negative numbers will use the system default
 | 
					 | 
				
			||||||
#: instead, if available, or fallback to 0.5.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# mouse_hide_wait 3.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Hide mouse cursor after the specified number of seconds of the
 | 
					 | 
				
			||||||
#: mouse not being used. Set to zero to disable mouse cursor hiding.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# focus_follows_mouse no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Set the active window to the window under the mouse when moving the
 | 
					 | 
				
			||||||
#: mouse around
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Performance tuning {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# repaint_delay 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Delay (in milliseconds) between screen updates. Decreasing it,
 | 
					 | 
				
			||||||
#: increases frames-per-second (FPS) at the cost of more CPU usage.
 | 
					 | 
				
			||||||
#: The default value yields ~100 FPS which is more than sufficient for
 | 
					 | 
				
			||||||
#: most uses. Note that to actually achieve 100 FPS you have to either
 | 
					 | 
				
			||||||
#: set sync_to_monitor to no or use a monitor with a high refresh
 | 
					 | 
				
			||||||
#: rate.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# input_delay 3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Delay (in milliseconds) before input from the program running in
 | 
					 | 
				
			||||||
#: the terminal is processed. Note that decreasing it will increase
 | 
					 | 
				
			||||||
#: responsiveness, but also increase CPU usage and might cause flicker
 | 
					 | 
				
			||||||
#: in full screen programs that redraw the entire screen on each loop,
 | 
					 | 
				
			||||||
#: because kitty is so fast that partial screen updates will be drawn.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# sync_to_monitor yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Sync screen updates to the refresh rate of the monitor. This
 | 
					 | 
				
			||||||
#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
 | 
					 | 
				
			||||||
#: when scrolling. However, it limits the rendering speed to the
 | 
					 | 
				
			||||||
#: refresh rate of your monitor. With a very high speed mouse/high
 | 
					 | 
				
			||||||
#: keyboard repeat rate, you may notice some slight input latency. If
 | 
					 | 
				
			||||||
#: so, set this to no.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Terminal bell {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enable_audio_bell no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Enable/disable the audio bell. Useful in environments that require
 | 
					 | 
				
			||||||
#: silence.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# visual_bell_duration 0.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Visual bell duration. Flash the screen when a bell occurs for the
 | 
					 | 
				
			||||||
#: specified number of seconds. Set to zero to disable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# window_alert_on_bell yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Request window attention on bell. Makes the dock icon bounce on
 | 
					 | 
				
			||||||
#: macOS or the taskbar flash on linux.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# bell_on_tab yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Show a bell symbol on the tab if a bell occurs in one of the
 | 
					 | 
				
			||||||
#: windows in the tab and the window is not the currently focused
 | 
					 | 
				
			||||||
#: window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Window layout {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# remember_window_size  yes
 | 
					 | 
				
			||||||
# initial_window_width  640
 | 
					 | 
				
			||||||
# initial_window_height 400
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: If enabled, the window size will be remembered so that new
 | 
					 | 
				
			||||||
#: instances of kitty will have the same size as the previous
 | 
					 | 
				
			||||||
#: instance. If disabled, the window will initially have size
 | 
					 | 
				
			||||||
#: configured by initial_window_width/height, in pixels. You can use a
 | 
					 | 
				
			||||||
#: suffix of "c" on the width/height values to have them interpreted
 | 
					 | 
				
			||||||
#: as number of cells instead of pixels.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# enabled_layouts *
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The enabled window layouts. A comma separated list of layout names.
 | 
					 | 
				
			||||||
#: The special value all means all layouts. The first listed layout
 | 
					 | 
				
			||||||
#: will be used as the startup layout. For a list of available
 | 
					 | 
				
			||||||
#: layouts, see the
 | 
					 | 
				
			||||||
#: https://sw.kovidgoyal.net/kitty/index.html#layouts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# window_resize_step_cells 2
 | 
					 | 
				
			||||||
# window_resize_step_lines 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The step size (in units of cell width/cell height) to use when
 | 
					 | 
				
			||||||
#: resizing windows. The cells value is used for horizontal resizing
 | 
					 | 
				
			||||||
#: and the lines value for vertical resizing.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# window_border_width 1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The width (in pts) of window borders. Will be rounded to the
 | 
					 | 
				
			||||||
#: nearest number of pixels based on screen resolution. Note that
 | 
					 | 
				
			||||||
#: borders are displayed only when more than one window is visible.
 | 
					 | 
				
			||||||
#: They are meant to separate multiple windows.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# draw_minimal_borders yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Draw only the minimum borders needed. This means that only the
 | 
					 | 
				
			||||||
#: minimum needed borders for inactive windows are drawn. That is only
 | 
					 | 
				
			||||||
#: the borders that separate the inactive window from a neighbor. Note
 | 
					 | 
				
			||||||
#: that setting a non-zero window margin overrides this and causes all
 | 
					 | 
				
			||||||
#: borders to be drawn.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# window_margin_width 0.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The window margin (in pts) (blank area outside the border)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# single_window_margin_width -1000.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The window margin (in pts) to use when only a single window is
 | 
					 | 
				
			||||||
#: visible. Negative values will cause the value of
 | 
					 | 
				
			||||||
#: window_margin_width to be used instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# window_padding_width 0.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The window padding (in pts) (blank area between the text and the
 | 
					 | 
				
			||||||
#: window border)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# active_border_color #00ff00
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The color for the border of the active window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# inactive_border_color #cccccc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The color for the border of inactive windows
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# bell_border_color #ff5a00
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The color for the border of inactive windows in which a bell has
 | 
					 | 
				
			||||||
#: occurred
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# inactive_text_alpha 1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Fade the text in inactive windows by the specified amount (a number
 | 
					 | 
				
			||||||
#: between zero and one, with zero being fully faded).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# hide_window_decorations no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Hide the window decorations (title-bar and window borders). Whether
 | 
					 | 
				
			||||||
#: this works and exactly what effect it has depends on the window
 | 
					 | 
				
			||||||
#: manager/operating system.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Tab bar {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# tab_bar_edge bottom
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Which edge to show the tab bar on, top or bottom
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# tab_bar_margin_width 0.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The margin to the left and right of the tab bar (in pts)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# tab_bar_style fade
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The tab bar style, can be one of: fade, separator or hidden. In the
 | 
					 | 
				
			||||||
#: fade style, each tab's edges fade into the background color, in the
 | 
					 | 
				
			||||||
#: separator style, tabs are separated by a configurable separator.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# tab_fade 0.25 0.5 0.75 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Control how each tab fades into the background when using fade for
 | 
					 | 
				
			||||||
#: the tab_bar_style. Each number is an alpha (between zero and one)
 | 
					 | 
				
			||||||
#: that controls how much the corresponding cell fades into the
 | 
					 | 
				
			||||||
#: background, with zero being no fade and one being full fade. You
 | 
					 | 
				
			||||||
#: can change the number of cells used by adding/removing entries to
 | 
					 | 
				
			||||||
#: this list.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# tab_separator " âÂÂ"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The separator between tabs in the tab bar when using separator as
 | 
					 | 
				
			||||||
#: the tab_bar_style.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# tab_title_template {title}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: A template to render the tab title. The default just renders the
 | 
					 | 
				
			||||||
#: title. If you wish to include the tab-index as well, use something
 | 
					 | 
				
			||||||
#: like: {index}: {title}. Useful if you have shortcuts mapped for
 | 
					 | 
				
			||||||
#: goto_tab N.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# active_tab_foreground   #000
 | 
					 | 
				
			||||||
# active_tab_background   #eee
 | 
					 | 
				
			||||||
# active_tab_font_style   bold-italic
 | 
					 | 
				
			||||||
# inactive_tab_foreground #444
 | 
					 | 
				
			||||||
# inactive_tab_background #999
 | 
					 | 
				
			||||||
# inactive_tab_font_style normal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Tab bar colors and styles
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Color scheme {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreground #d6e5fb
 | 
					 | 
				
			||||||
background #12151a
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The foreground and background colors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 background_opacity         0.95
 | 
					 | 
				
			||||||
 dynamic_background_opacity yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The opacity of the background. A number between 0 and 1, where 1 is
 | 
					 | 
				
			||||||
#: opaque and 0 is fully transparent.  This will only work if
 | 
					 | 
				
			||||||
#: supported by the OS (for instance, when using a compositor under
 | 
					 | 
				
			||||||
#: X11). Note that it only sets the default background color's
 | 
					 | 
				
			||||||
#: opacity. This is so that things like the status bar in vim,
 | 
					 | 
				
			||||||
#: powerline prompts, etc. still look good.  But it means that if you
 | 
					 | 
				
			||||||
#: use a color theme with a background color in your editor, it will
 | 
					 | 
				
			||||||
#: not be rendered as transparent.  Instead you should change the
 | 
					 | 
				
			||||||
#: default background color in your kitty config and not use a
 | 
					 | 
				
			||||||
#: background color in the editor color scheme. Or use the escape
 | 
					 | 
				
			||||||
#: codes to set the terminals default colors in a shell script to
 | 
					 | 
				
			||||||
#: launch your editor.  Be aware that using a value less than 1.0 is a
 | 
					 | 
				
			||||||
#: (possibly significant) performance hit.  If you want to dynamically
 | 
					 | 
				
			||||||
#: change transparency of windows set dynamic_background_opacity to
 | 
					 | 
				
			||||||
#: yes (this is off by default as it has a performance cost)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#dim_opacity 0.75
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: How much to dim text that has the DIM/FAINT attribute set. One
 | 
					 | 
				
			||||||
#: means no dimming and zero means fully dimmed (i.e. invisible).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
selection_foreground #1f212e
 | 
					 | 
				
			||||||
selection_background #d6e5fb
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The foreground and background for text selected with the mouse
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The 16 terminal colors. There are 8 basic colors, each color has a
 | 
					 | 
				
			||||||
#: dull and bright version. You can also set the remaining colors from
 | 
					 | 
				
			||||||
#: the 256 color table as color16 to color255.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color0 #161720
 | 
					 | 
				
			||||||
 color8 #232933
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: black
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color1 #f0185a
 | 
					 | 
				
			||||||
 color9 #ff4551
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: red
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color2  #12e690
 | 
					 | 
				
			||||||
 color10 #3aff93
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: green
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color3  #ffa463
 | 
					 | 
				
			||||||
 color11 #ffdd74
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: yellow
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color4  #02a4fc
 | 
					 | 
				
			||||||
 color12 #26c5ff
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: blue
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color5  #02a4fc
 | 
					 | 
				
			||||||
 color13 #34b0fd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: magenta
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color6  #26c5ff
 | 
					 | 
				
			||||||
 color14 #26c5ff
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: cyan
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 color7  #aab5c6
 | 
					 | 
				
			||||||
 color15 #d6e4fb
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: white
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Advanced {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# shell .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The shell program to execute. The default value of . means to use
 | 
					 | 
				
			||||||
#: whatever shell is set as the default shell for the current user.
 | 
					 | 
				
			||||||
#: Note that on macOS if you change this, you might need to add
 | 
					 | 
				
			||||||
#: --login to ensure that the shell starts in interactive mode and
 | 
					 | 
				
			||||||
#: reads its startup rc files.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# editor .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The console editor to use when editing the kitty config file or
 | 
					 | 
				
			||||||
#: similar tasks. A value of . means to use the environment variable
 | 
					 | 
				
			||||||
#: EDITOR. Note that this environment variable has to be set not just
 | 
					 | 
				
			||||||
#: in your shell startup scripts but system-wide, otherwise kitty will
 | 
					 | 
				
			||||||
#: not see it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# close_on_child_death no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Close the window when the child process (shell) exits. If no (the
 | 
					 | 
				
			||||||
#: default), the terminal will remain open when the child exits as
 | 
					 | 
				
			||||||
#: long as there are still processes outputting to the terminal (for
 | 
					 | 
				
			||||||
#: example disowned or backgrounded processes). If yes, the window
 | 
					 | 
				
			||||||
#: will close as soon as the child process exits. Note that setting it
 | 
					 | 
				
			||||||
#: to yes means that any background processes still using the terminal
 | 
					 | 
				
			||||||
#: can fail silently because their stdout/stderr/stdin no longer work.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# allow_remote_control no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Allow other programs to control kitty. If you turn this on other
 | 
					 | 
				
			||||||
#: programs can control all aspects of kitty, including sending text
 | 
					 | 
				
			||||||
#: to kitty windows, opening new windows, closing windows, reading the
 | 
					 | 
				
			||||||
#: content of windows, etc. Note that this even works over ssh
 | 
					 | 
				
			||||||
#: connections.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# env 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Specify environment variables to set in all child processes. Note
 | 
					 | 
				
			||||||
#: that environment variables are expanded recursively, so if you
 | 
					 | 
				
			||||||
#: use::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     env MYVAR1=a
 | 
					 | 
				
			||||||
#:     env MYVAR2=${MYVAR1}/${HOME}/b
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The value of MYVAR2 will be a/<path to home directory>/b.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# startup_session none
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Path to a session file to use for all kitty instances. Can be
 | 
					 | 
				
			||||||
#: overridden by using the kitty --session command line option for
 | 
					 | 
				
			||||||
#: individual instances. See
 | 
					 | 
				
			||||||
#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty
 | 
					 | 
				
			||||||
#: documentation for details. Note that relative paths are interpreted
 | 
					 | 
				
			||||||
#: with respect to the kitty config directory. Environment variables
 | 
					 | 
				
			||||||
#: in the path are expanded.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# clipboard_control write-clipboard write-primary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Allow programs running in kitty to read and write from the
 | 
					 | 
				
			||||||
#: clipboard. You can control exactly which actions are allowed. The
 | 
					 | 
				
			||||||
#: set of possible actions is: write-clipboard read-clipboard write-
 | 
					 | 
				
			||||||
#: primary read-primary The default is to allow writing to the
 | 
					 | 
				
			||||||
#: clipboard and primary selection. Note that enabling the read
 | 
					 | 
				
			||||||
#: functionality is a security risk as it means that any program, even
 | 
					 | 
				
			||||||
#: one running on a remote server via SSH can read your clipboard.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# term xterm-kitty
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The value of the TERM environment variable to set. Changing this
 | 
					 | 
				
			||||||
#: can break many terminal programs, only change it if you know what
 | 
					 | 
				
			||||||
#: you are doing, not because you read some advice on Stack Overflow
 | 
					 | 
				
			||||||
#: to change it. The TERM variable if used by various programs to get
 | 
					 | 
				
			||||||
#: information about the capabilities and behavior of the terminal. If
 | 
					 | 
				
			||||||
#: you change it, depending on what programs you run, and how
 | 
					 | 
				
			||||||
#: different the terminal you are changing it to is, various things
 | 
					 | 
				
			||||||
#: from key-presses, to colors, to various advanced features may not
 | 
					 | 
				
			||||||
#: work.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: OS specific tweaks {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_titlebar_color system
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Change the color of the kitty window's titlebar on macOS. A value
 | 
					 | 
				
			||||||
#: of system means to use the default system color, a value of
 | 
					 | 
				
			||||||
#: background means to use the background color of the currently
 | 
					 | 
				
			||||||
#: active window and finally you can use an arbitrary color, such as
 | 
					 | 
				
			||||||
#: #12af59 or red. WARNING: This option works by using a hack, as
 | 
					 | 
				
			||||||
#: there is no proper Cocoa API for it. It sets the background color
 | 
					 | 
				
			||||||
#: of the entire window and makes the titlebar transparent. As such it
 | 
					 | 
				
			||||||
#: is incompatible with background_opacity. If you want to use both,
 | 
					 | 
				
			||||||
#: you are probably better off just hiding the titlebar with
 | 
					 | 
				
			||||||
#: hide_window_decorations.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_option_as_alt yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Use the option key as an alt key. With this set to no, kitty will
 | 
					 | 
				
			||||||
#: use the macOS native Option+Key = unicode character behavior. This
 | 
					 | 
				
			||||||
#: will break any Alt+key keyboard shortcuts in your terminal
 | 
					 | 
				
			||||||
#: programs, but you can use the macOS unicode input technique.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_hide_from_tasks no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Hide the kitty window from running tasks (Option+Tab) on macOS.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_quit_when_last_window_closed no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Have kitty quit when all the top-level windows are closed. By
 | 
					 | 
				
			||||||
#: default, kitty will stay running, even with no open windows, as is
 | 
					 | 
				
			||||||
#: the expected behavior on macOS.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_window_resizable yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Disable this if you want kitty top-level (OS) windows to not be
 | 
					 | 
				
			||||||
#: resizable on macOS.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_thicken_font 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Draw an extra border around the font with the given width, to
 | 
					 | 
				
			||||||
#: increase legibility at small font sizes. For example, a value of
 | 
					 | 
				
			||||||
#: 0.75 will result in rendering that looks similar to sub-pixel
 | 
					 | 
				
			||||||
#: antialiasing at common font sizes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_traditional_fullscreen no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Use the traditional full-screen transition, that is faster, but
 | 
					 | 
				
			||||||
#: less pretty.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# macos_custom_beam_cursor no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Enable/disable custom mouse cursor for macOS that is easier to see
 | 
					 | 
				
			||||||
#: on both light and dark backgrounds. WARNING: this might make your
 | 
					 | 
				
			||||||
#: mouse cursor invisible on dual GPU machines.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Keyboard shortcuts {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: For a list of key names, see: GLFW keys
 | 
					 | 
				
			||||||
#: <http://www.glfw.org/docs/latest/group__keys.html>. The name to use
 | 
					 | 
				
			||||||
#: is the part after the GLFW_KEY_ prefix. For a list of modifier
 | 
					 | 
				
			||||||
#: names, see: GLFW mods
 | 
					 | 
				
			||||||
#: <http://www.glfw.org/docs/latest/group__mods.html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: On Linux you can also use XKB key names to bind keys that are not
 | 
					 | 
				
			||||||
#: supported by GLFW. See XKB keys
 | 
					 | 
				
			||||||
#: <https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-
 | 
					 | 
				
			||||||
#: keysyms.h> for a list of key names. The name to use is the part
 | 
					 | 
				
			||||||
#: after the XKB_KEY_ prefix. Note that you should only use an XKB key
 | 
					 | 
				
			||||||
#: name for keys that are not present in the list of GLFW keys.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Finally, you can use raw system key codes to map keys. To see the
 | 
					 | 
				
			||||||
#: system key code for a key, start kitty with the kitty --debug-
 | 
					 | 
				
			||||||
#: keyboard option. Then kitty will output some debug text for every
 | 
					 | 
				
			||||||
#: key event. In that text look for ``native_code`` the value of that
 | 
					 | 
				
			||||||
#: becomes the key name in the shortcut. For example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: .. code-block:: none
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Here, the key name for the A key is 0x61 and you can use it with::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+0x61 something
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: to map ctrl+a to something.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can use the special action no_op to unmap a keyboard shortcut
 | 
					 | 
				
			||||||
#: that is assigned in the default configuration.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can combine multiple actions to be triggered by a single
 | 
					 | 
				
			||||||
#: shortcut, using the syntax below::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map key combine <separator> action1 <separator> action2 <separator> action3 ...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: For example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map kitty_mod+e combine : new_window : next_layout
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: this will create a new window and switch to the next available
 | 
					 | 
				
			||||||
#: layout
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can use multi-key shortcuts using the syntax shown below::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map key1>key2>key3 action
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: For example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+f>2 set_font_size 20
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# kitty_mod ctrl+shift
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The value of kitty_mod is used as the modifier for all default
 | 
					 | 
				
			||||||
#: shortcuts, you can change it in your kitty.conf to change the
 | 
					 | 
				
			||||||
#: modifiers for all the default shortcuts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# clear_all_shortcuts no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can have kitty remove all shortcut definition seen up to this
 | 
					 | 
				
			||||||
#: point. Useful, for instance, to remove the default shortcuts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Clipboard {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+c copy_to_clipboard
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: There is also a copy_or_interrupt action that can be optionally
 | 
					 | 
				
			||||||
#: mapped to Ctrl+c. It will copy only if there is a selection and
 | 
					 | 
				
			||||||
#: send an interrupt otherwise.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+v  paste_from_clipboard
 | 
					 | 
				
			||||||
# map kitty_mod+s  paste_from_selection
 | 
					 | 
				
			||||||
# map shift+insert paste_from_selection
 | 
					 | 
				
			||||||
# map kitty_mod+o  pass_selection_to_program
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can also pass the contents of the current selection to any
 | 
					 | 
				
			||||||
#: program using pass_selection_to_program. By default, the system's
 | 
					 | 
				
			||||||
#: open program is used, but you can specify your own, for example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map kitty_mod+o pass_selection_to_program firefox
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can pass the current selection to a terminal program running in
 | 
					 | 
				
			||||||
#: a new kitty window, by using the @selection placeholder::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map kitty_mod+y new_window less @selection
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Scrolling {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+up        scroll_line_up
 | 
					 | 
				
			||||||
# map kitty_mod+k         scroll_line_up
 | 
					 | 
				
			||||||
# map kitty_mod+down      scroll_line_down
 | 
					 | 
				
			||||||
# map kitty_mod+j         scroll_line_down
 | 
					 | 
				
			||||||
# map kitty_mod+page_up   scroll_page_up
 | 
					 | 
				
			||||||
# map kitty_mod+page_down scroll_page_down
 | 
					 | 
				
			||||||
# map kitty_mod+home      scroll_home
 | 
					 | 
				
			||||||
# map kitty_mod+end       scroll_end
 | 
					 | 
				
			||||||
# map kitty_mod+h         show_scrollback
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can pipe the contents of the current screen + history buffer as
 | 
					 | 
				
			||||||
#: STDIN to an arbitrary program using the ``pipe`` function. For
 | 
					 | 
				
			||||||
#: example, the following opens the scrollback buffer in less in an
 | 
					 | 
				
			||||||
#: overlay window::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map f1 pipe @ansi overlay less +G -R
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: For more details on piping screen and buffer contents to external
 | 
					 | 
				
			||||||
#: programs, see pipe.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Window management {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+enter new_window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can open a new window running an arbitrary program, for
 | 
					 | 
				
			||||||
#: example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map kitty_mod+y      new_window mutt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can open a new window with the current working directory set to
 | 
					 | 
				
			||||||
#: the working directory of the current window using::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+alt+enter    new_window_with_cwd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can open a new window that is allowed to control kitty via the
 | 
					 | 
				
			||||||
#: kitty remote control facility by prefixing the command line with @.
 | 
					 | 
				
			||||||
#: Any programs running in that window will be allowed to control
 | 
					 | 
				
			||||||
#: kitty. For example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+enter new_window @ some_program
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+n new_os_window
 | 
					 | 
				
			||||||
# map kitty_mod+w close_window
 | 
					 | 
				
			||||||
# map kitty_mod+] next_window
 | 
					 | 
				
			||||||
# map kitty_mod+[ previous_window
 | 
					 | 
				
			||||||
# map kitty_mod+f move_window_forward
 | 
					 | 
				
			||||||
# map kitty_mod+b move_window_backward
 | 
					 | 
				
			||||||
# map kitty_mod+` move_window_to_top
 | 
					 | 
				
			||||||
# map kitty_mod+r start_resizing_window
 | 
					 | 
				
			||||||
# map kitty_mod+1 first_window
 | 
					 | 
				
			||||||
# map kitty_mod+2 second_window
 | 
					 | 
				
			||||||
# map kitty_mod+3 third_window
 | 
					 | 
				
			||||||
# map kitty_mod+4 fourth_window
 | 
					 | 
				
			||||||
# map kitty_mod+5 fifth_window
 | 
					 | 
				
			||||||
# map kitty_mod+6 sixth_window
 | 
					 | 
				
			||||||
# map kitty_mod+7 seventh_window
 | 
					 | 
				
			||||||
# map kitty_mod+8 eighth_window
 | 
					 | 
				
			||||||
# map kitty_mod+9 ninth_window
 | 
					 | 
				
			||||||
# map kitty_mod+0 tenth_window
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Tab management {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+right next_tab
 | 
					 | 
				
			||||||
# map kitty_mod+left  previous_tab
 | 
					 | 
				
			||||||
# map kitty_mod+t     new_tab
 | 
					 | 
				
			||||||
# map kitty_mod+q     close_tab
 | 
					 | 
				
			||||||
# map kitty_mod+.     move_tab_forward
 | 
					 | 
				
			||||||
# map kitty_mod+,     move_tab_backward
 | 
					 | 
				
			||||||
# map kitty_mod+alt+t set_tab_title
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can also create shortcuts to go to specific tabs, with 1 being
 | 
					 | 
				
			||||||
#: the first tab, 2 the second tab and -1 being the previously active
 | 
					 | 
				
			||||||
#: tab::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+alt+1 goto_tab 1
 | 
					 | 
				
			||||||
#:     map ctrl+alt+2 goto_tab 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Just as with new_window above, you can also pass the name of
 | 
					 | 
				
			||||||
#: arbitrary commands to run when using new_tab and use
 | 
					 | 
				
			||||||
#: new_tab_with_cwd. Finally, if you want the new tab to open next to
 | 
					 | 
				
			||||||
#: the current tab rather than at the end of the tabs list, use::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+t new_tab !neighbor [optional cmd to run]
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Layout management {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+l next_layout
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can also create shortcuts to switch to specific layouts::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+alt+t goto_layout tall
 | 
					 | 
				
			||||||
#:     map ctrl+alt+s goto_layout stack
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Similarly, to switch back to the previous layout::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:    map ctrl+alt+p last_used_layout
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Font sizes {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can change the font size for all top-level kitty OS windows at
 | 
					 | 
				
			||||||
#: a time or only the current one.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+equal     change_font_size all +2.0
 | 
					 | 
				
			||||||
# map kitty_mod+minus     change_font_size all -2.0
 | 
					 | 
				
			||||||
# map kitty_mod+backspace change_font_size all 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: To setup shortcuts for specific font sizes::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map kitty_mod+f6 change_font_size all 10.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: To setup shortcuts to change only the current OS window's font
 | 
					 | 
				
			||||||
#: size::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map kitty_mod+f6 change_font_size current 10.0
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Select and act on visible text {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Use the hints kitten to select text and either pass it to an
 | 
					 | 
				
			||||||
#: external program or insert it into the terminal or copy it to the
 | 
					 | 
				
			||||||
#: clipboard.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+e kitten hints
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Open a currently visible URL using the keyboard. The program used
 | 
					 | 
				
			||||||
#: to open the URL is specified in open_url_with.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+p>f kitten hints --type path --program -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Select a path/filename and insert it into the terminal. Useful, for
 | 
					 | 
				
			||||||
#: instance to run git commands on a filename output from a previous
 | 
					 | 
				
			||||||
#: git command.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+p>shift+f kitten hints --type path
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Select a path/filename and open it with the default open program.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+p>l kitten hints --type line --program -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Select a line of text and insert it into the terminal. Use for the
 | 
					 | 
				
			||||||
#: output of things like: ls -1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+p>w kitten hints --type word --program -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Select words and insert into terminal.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+p>h kitten hints --type hash --program -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Select something that looks like a hash and insert it into the
 | 
					 | 
				
			||||||
#: terminal. Useful with git, which uses sha1 hashes to identify
 | 
					 | 
				
			||||||
#: commits
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: The hints kitten has many more modes of operation that you can map
 | 
					 | 
				
			||||||
#: to different shortcuts. For a full description see kittens/hints.
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Miscellaneous {{{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+f11    toggle_fullscreen
 | 
					 | 
				
			||||||
# map kitty_mod+u      kitten unicode_input
 | 
					 | 
				
			||||||
# map kitty_mod+f2     edit_config_file
 | 
					 | 
				
			||||||
# map kitty_mod+escape kitty_shell window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Open the kitty shell in a new window/tab/overlay/os_window to
 | 
					 | 
				
			||||||
#: control kitty using commands.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# map kitty_mod+a>m    set_background_opacity +0.1
 | 
					 | 
				
			||||||
# map kitty_mod+a>l    set_background_opacity -0.1
 | 
					 | 
				
			||||||
# map kitty_mod+a>1    set_background_opacity 1
 | 
					 | 
				
			||||||
# map kitty_mod+a>d    set_background_opacity default
 | 
					 | 
				
			||||||
# map kitty_mod+delete clear_terminal reset active
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can create shortcuts to clear/reset the terminal. For example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     # Reset the terminal
 | 
					 | 
				
			||||||
#:     map kitty_mod+f9 clear_terminal reset active
 | 
					 | 
				
			||||||
#:     # Clear the terminal screen by erasing all contents
 | 
					 | 
				
			||||||
#:     map kitty_mod+f10 clear_terminal clear active
 | 
					 | 
				
			||||||
#:     # Clear the terminal scrollback by erasing it
 | 
					 | 
				
			||||||
#:     map kitty_mod+f11 clear_terminal scrollback active
 | 
					 | 
				
			||||||
#:     # Scroll the contents of the screen into the scrollback
 | 
					 | 
				
			||||||
#:     map kitty_mod+f12 clear_terminal scroll active
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: If you want to operate on all windows instead of just the current
 | 
					 | 
				
			||||||
#: one, use all instead of :italic`active`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: It is also possible to remap Ctrl+L to both scroll the current
 | 
					 | 
				
			||||||
#: screen contents into the scrollback buffer and clear the screen,
 | 
					 | 
				
			||||||
#: instead of just clearing the screen::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+l combine : clear_terminal scroll active : send_text normal,application
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: You can tell kitty to send arbitrary (UTF-8) encoded text to the
 | 
					 | 
				
			||||||
#: client program when pressing specified shortcut keys. For example::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+alt+a send_text all Special text
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: This will send "Special text" when you press the ctrl+alt+a key
 | 
					 | 
				
			||||||
#: combination.  The text to be sent is a python string literal so you
 | 
					 | 
				
			||||||
#: can use escapes like \x1b to send control codes or \u21fb to send
 | 
					 | 
				
			||||||
#: unicode characters (or you can just input the unicode characters
 | 
					 | 
				
			||||||
#: directly as UTF-8 text). The first argument to send_text is the
 | 
					 | 
				
			||||||
#: keyboard modes in which to activate the shortcut. The possible
 | 
					 | 
				
			||||||
#: values are normal or application or kitty or a comma separated
 | 
					 | 
				
			||||||
#: combination of them.  The special keyword all means all modes. The
 | 
					 | 
				
			||||||
#: modes normal and application refer to the DECCKM cursor key mode
 | 
					 | 
				
			||||||
#: for terminals, and kitty refers to the special kitty extended
 | 
					 | 
				
			||||||
#: keyboard protocol.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: Another example, that outputs a word and then moves the cursor to
 | 
					 | 
				
			||||||
#: the start of the line (same as pressing the Home key)::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#:     map ctrl+alt+a send_text normal Word\x1b[H
 | 
					 | 
				
			||||||
#:     map ctrl+alt+a send_text application Word\x1bOH
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: }}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# }}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,21 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
requires := kitty
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_DIR :=  $(XDG_DIR)/kitty
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install: | init update
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up:
 | 
					 | 
				
			||||||
	if (( $$+commands[kitty] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Setting up kitty"
 | 
					 | 
				
			||||||
		$(mk_link) $(SRC) $(CONFIG_DIR)
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "kitty not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	$(report) header "removing up kitty"
 | 
					 | 
				
			||||||
	rm -r $(CONFIG_DIR) ; $(report) "removed dir"
 | 
					 | 
				
			||||||
							
								
								
									
										31
									
								
								mako/config
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								mako/config
									
									
									
									
									
								
							| 
						 | 
					@ -1,31 +0,0 @@
 | 
				
			||||||
font=FuraCode Nerd Font Light 11
 | 
					 | 
				
			||||||
width=450
 | 
					 | 
				
			||||||
padding=20,20
 | 
					 | 
				
			||||||
background-color=#161720ee
 | 
					 | 
				
			||||||
border-color=#12151a
 | 
					 | 
				
			||||||
text-color=#d6e5fb
 | 
					 | 
				
			||||||
default-timeout=8000
 | 
					 | 
				
			||||||
progress-color=over #d6e5fb
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
icons=1
 | 
					 | 
				
			||||||
layer=overlay
 | 
					 | 
				
			||||||
group-by=summary
 | 
					 | 
				
			||||||
icon-path=~/.icons/Boston
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[hidden]
 | 
					 | 
				
			||||||
background-color=#bfbfbfff
 | 
					 | 
				
			||||||
format=+ %h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[urgency=high]
 | 
					 | 
				
			||||||
background-color=#1f212eee
 | 
					 | 
				
			||||||
border-color=#f0185a00
 | 
					 | 
				
			||||||
text-color=#f0185a
 | 
					 | 
				
			||||||
ignore-timeout=true
 | 
					 | 
				
			||||||
default-timeout=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[!expiring]
 | 
					 | 
				
			||||||
background-color=#555555ff
 | 
					 | 
				
			||||||
text-color=#eeeeeeff
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[grouped]
 | 
					 | 
				
			||||||
format=<b>%s</b> ✖ %g\n%b
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,28 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
TARGET :=  $(XDG_DIR)/mako
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
init:
 | 
					 | 
				
			||||||
	if (( $$+commands[mako] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Setting up mako"
 | 
					 | 
				
			||||||
		$(mk_link) $(SRC) $(TARGET)
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) warn "mako not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up: init
 | 
					 | 
				
			||||||
	 if (( $$+commands[makoctl] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Updating mako"
 | 
					 | 
				
			||||||
		if [[ -n `pgrep mako` ]] ; then
 | 
					 | 
				
			||||||
			makoctl reload ; $(report) "mako reload"
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "mako not installed"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	$(report) header "Removing mako"
 | 
					 | 
				
			||||||
	$(rm_link) $(TARGET)
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,90 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# pass get - Password Store Extension (https://www.passwordstore.org/)
 | 
					 | 
				
			||||||
# Copyright (C) 2020 James Patrick
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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 <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
R='\033[0;31m' 
 | 
					 | 
				
			||||||
G='\033[0;32m' 
 | 
					 | 
				
			||||||
NC='\033[0m'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PASSWORD_STORE_DIR="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_usage() {
 | 
					 | 
				
			||||||
    cat <<-_EOF
 | 
					 | 
				
			||||||
Usage:
 | 
					 | 
				
			||||||
    $PROGRAM get pattern pass_name
 | 
					 | 
				
			||||||
        Parses the pass data for lines pulling out the value of browserpass's
 | 
					 | 
				
			||||||
        format of "key:value". The 'pattern' arg is a case insenitive, extended
 | 
					 | 
				
			||||||
        regex using grep -iE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        https://github.com/browserpass/browserpass-extension
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Options:
 | 
					 | 
				
			||||||
        Nada.
 | 
					 | 
				
			||||||
_EOF
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_assert(){
 | 
					 | 
				
			||||||
    test="$1"
 | 
					 | 
				
			||||||
    local pattern="$2" expected="$3"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    actual="$(cmd_get "$pattern")"
 | 
					 | 
				
			||||||
    if [[ "$actual" == "$expected" ]] ; then
 | 
					 | 
				
			||||||
        echo -e "$G ✔  '$actual' ==  '$expected' $NC"
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo -e "$R ✘  f('$test', '$pattern') → '$actual' !=  '$expected' $NC"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_test(){
 | 
					 | 
				
			||||||
    cmd_get_assert "username:value" "(user|username|login)" "value"
 | 
					 | 
				
			||||||
    cmd_get_assert " user: whitespace" "(user|username|login)" "whitespace"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   val="multiple:lines
 | 
					 | 
				
			||||||
value:pairs"
 | 
					 | 
				
			||||||
    cmd_get_assert "$val" "value" "pairs"
 | 
					 | 
				
			||||||
    cmd_get_assert "Key:capitalization doesn't counts" "key" \
 | 
					 | 
				
			||||||
        "capitalization doesn't counts"
 | 
					 | 
				
			||||||
    cmd_get_assert "missing:empty" "i don't exist" ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get(){
 | 
					 | 
				
			||||||
    local pattern="$1" pass_name="$2"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # valid the regex is valid
 | 
					 | 
				
			||||||
    echo | grep -qiE "$pattern"
 | 
					 | 
				
			||||||
    if [[ "$?" == 2 ]] ; then
 | 
					 | 
				
			||||||
        >&2 echo -e "${R}Invalid Pattern:${NC} $pattern"
 | 
					 | 
				
			||||||
        return 1
 | 
					 | 
				
			||||||
    fi 
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    echo "${test:-$(cmd_show "$pass_name")}" \
 | 
					 | 
				
			||||||
        | grep -iE "$pattern" \
 | 
					 | 
				
			||||||
        | head -1 \
 | 
					 | 
				
			||||||
        | cut -d ':' -f2- \
 | 
					 | 
				
			||||||
        | sed -e 's/^[ \t]*//'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[ "$1" == "test" ]] && cmd_get_test
 | 
					 | 
				
			||||||
[[ "$1" == "help" || "$1" == "--help" || "$1" == "-h" ]] && cmd_get_usage
 | 
					 | 
				
			||||||
[[ "$#" != "2" ]] && cmd_get_usage
 | 
					 | 
				
			||||||
cmd_get "$@"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,48 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# pass get - Password Store Extension (https://www.passwordstore.org/)
 | 
					 | 
				
			||||||
# Copyright (C) 2020 James Patrick
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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 <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PASSWORD_STORE_DIR="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_pass_usage() {
 | 
					 | 
				
			||||||
    cat <<-_EOF
 | 
					 | 
				
			||||||
Usage:
 | 
					 | 
				
			||||||
    $PROGRAM get_pass pass_name
 | 
					 | 
				
			||||||
        Grabs the pass based on rules for Browserpass.
 | 
					 | 
				
			||||||
          1. match "key:value" where key, either pass, password, or secret
 | 
					 | 
				
			||||||
          2. if no match is present default to the first line.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        https://github.com/browserpass/browserpass-extension
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Options:
 | 
					 | 
				
			||||||
        Nada.
 | 
					 | 
				
			||||||
_EOF
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_user(){
 | 
					 | 
				
			||||||
    local pass_name="$1" val backup
 | 
					 | 
				
			||||||
    val=$(pass get "(pass|password|secret)" "$pass_name")
 | 
					 | 
				
			||||||
    backup=$(cmd_show "$pass_name" | head -1) 
 | 
					 | 
				
			||||||
    echo "${val:-$backup}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[ "$1" == "help" || "$1" == "--help" || "$1" == "-h" ]] && cmd_get_user_usage
 | 
					 | 
				
			||||||
[[ "$#" != "1" ]] && cmd_get_user_usage
 | 
					 | 
				
			||||||
cmd_get_user "$@"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,48 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# pass get - Password Store Extension (https://www.passwordstore.org/)
 | 
					 | 
				
			||||||
# Copyright (C) 2020 James Patrick
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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 <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PASSWORD_STORE_DIR="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_user_usage() {
 | 
					 | 
				
			||||||
    cat <<-_EOF
 | 
					 | 
				
			||||||
Usage:
 | 
					 | 
				
			||||||
    $PROGRAM get_user pass_name
 | 
					 | 
				
			||||||
        Grabs the username based on rules for Browserpass.
 | 
					 | 
				
			||||||
          1. match "key:value" where key, either user, username, or login
 | 
					 | 
				
			||||||
          2. if no match is present default to a trimmed filename.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        https://github.com/browserpass/browserpass-extension
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Options:
 | 
					 | 
				
			||||||
        Nada.
 | 
					 | 
				
			||||||
_EOF
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmd_get_user(){
 | 
					 | 
				
			||||||
    local pass_name="$1" val
 | 
					 | 
				
			||||||
    val=$(pass get "(user|username|login)" "$pass_name")
 | 
					 | 
				
			||||||
    backup=$(echo "$pass_name" | awk -F"/" '{print $NF}' )
 | 
					 | 
				
			||||||
    echo "${val:-$backup}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[ "$1" == "help" || "$1" == "--help" || "$1" == "-h" ]] && cmd_get_user_usage
 | 
					 | 
				
			||||||
[[ "$#" != "1" ]] && cmd_get_user_usage
 | 
					 | 
				
			||||||
cmd_get_user "$@"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
TARGET := ~/.password-store
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up:
 | 
					 | 
				
			||||||
	if (( $$+commands[pass] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Setting up pass"
 | 
					 | 
				
			||||||
		[ -e $(TARGET) ] \
 | 
					 | 
				
			||||||
			&& $(mk_link) $(SRC)/extensions $(TARGET)/.extensions \
 | 
					 | 
				
			||||||
			|| $(report) warn "$(TARGET) doesn't exist. Skipping."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug " pass not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	$(report) header "Removing pass"
 | 
					 | 
				
			||||||
	$(rm_link) $(TARGET)
 | 
					 | 
				
			||||||
							
								
								
									
										149
									
								
								rofi/applet.rasi
									
									
									
									
									
								
							
							
						
						
									
										149
									
								
								rofi/applet.rasi
									
									
									
									
									
								
							| 
						 | 
					@ -1,149 +0,0 @@
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * rofi -dump-theme output.
 | 
					 | 
				
			||||||
 * Rofi version: 1.5.2
 | 
					 | 
				
			||||||
 **/
 | 
					 | 
				
			||||||
* {
 | 
					 | 
				
			||||||
    background-color:            rgba ( 0, 0, 0, 0 % );
 | 
					 | 
				
			||||||
    background:                  #161720;
 | 
					 | 
				
			||||||
    blue:                        rgba ( 38, 139, 210, 100 % );
 | 
					 | 
				
			||||||
    foreground:                  #d6e5fb;
 | 
					 | 
				
			||||||
    alt-bg:                      #12151a;
 | 
					 | 
				
			||||||
    alt-fg:                      #02a4fc;
 | 
					 | 
				
			||||||
    red:                         rgba ( 220, 50, 47, 100 % );
 | 
					 | 
				
			||||||
    active-background:           @background;
 | 
					 | 
				
			||||||
    active-foreground:           @blue;
 | 
					 | 
				
			||||||
    alternate-active-background: @alt-bg;
 | 
					 | 
				
			||||||
    alternate-active-foreground: @blue;
 | 
					 | 
				
			||||||
    alternate-normal-background: @alt-bg;
 | 
					 | 
				
			||||||
    alternate-normal-foreground: @foreground;
 | 
					 | 
				
			||||||
    alternate-urgent-background: @alt-bg;
 | 
					 | 
				
			||||||
    alternate-urgent-foreground: @red;
 | 
					 | 
				
			||||||
    border-color:                @background;
 | 
					 | 
				
			||||||
    normal-background:           @background;
 | 
					 | 
				
			||||||
    normal-foreground:           @foreground;
 | 
					 | 
				
			||||||
    selected-active-background:  @blue;
 | 
					 | 
				
			||||||
    selected-active-foreground:  @background;
 | 
					 | 
				
			||||||
    selected-normal-background:  @alt-fg;
 | 
					 | 
				
			||||||
    selected-normal-foreground:  @alt-bg;
 | 
					 | 
				
			||||||
    selected-urgent-background:  @red;
 | 
					 | 
				
			||||||
    selected-urgent-foreground:  @background;
 | 
					 | 
				
			||||||
    separatorcolor:              @foreground;
 | 
					 | 
				
			||||||
    spacing:                     2;
 | 
					 | 
				
			||||||
    urgent-background:           @background;
 | 
					 | 
				
			||||||
    urgent-foreground:           @red;
 | 
					 | 
				
			||||||
    font:                        "FuraCode Nerd Font Mono Medium 13";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
window {
 | 
					 | 
				
			||||||
    width:            350;
 | 
					 | 
				
			||||||
    height:           350;
 | 
					 | 
				
			||||||
    padding:          5;
 | 
					 | 
				
			||||||
    background-color: @background;
 | 
					 | 
				
			||||||
    border:           1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
mainbox {
 | 
					 | 
				
			||||||
    padding: 0;
 | 
					 | 
				
			||||||
    border:  0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
message {
 | 
					 | 
				
			||||||
    padding:      1px ;
 | 
					 | 
				
			||||||
    border-color: @separatorcolor;
 | 
					 | 
				
			||||||
    border:       2px dash 0px 0px ;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
textbox {
 | 
					 | 
				
			||||||
    text-color: @foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
listview {
 | 
					 | 
				
			||||||
    padding:      2px 0px 0px ;
 | 
					 | 
				
			||||||
    scrollbar:    false;
 | 
					 | 
				
			||||||
    border-color: @separatorcolor;
 | 
					 | 
				
			||||||
    spacing:      2px ;
 | 
					 | 
				
			||||||
    fixed-height: 0;
 | 
					 | 
				
			||||||
    border:       2px dash 0px 0px ;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element {
 | 
					 | 
				
			||||||
    padding: 1px ;
 | 
					 | 
				
			||||||
    border:  0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element normal.normal {
 | 
					 | 
				
			||||||
    background-color: @normal-background;
 | 
					 | 
				
			||||||
    text-color:       @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element normal.urgent {
 | 
					 | 
				
			||||||
    background-color: @urgent-background;
 | 
					 | 
				
			||||||
    text-color:       @urgent-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element normal.active {
 | 
					 | 
				
			||||||
    background-color: @active-background;
 | 
					 | 
				
			||||||
    text-color:       @active-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element selected.normal {
 | 
					 | 
				
			||||||
    background-color: @selected-normal-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element selected.urgent {
 | 
					 | 
				
			||||||
    background-color: @selected-urgent-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-urgent-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element selected.active {
 | 
					 | 
				
			||||||
    background-color: @selected-active-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-active-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element alternate.normal {
 | 
					 | 
				
			||||||
    background-color: @alternate-normal-background;
 | 
					 | 
				
			||||||
    text-color:       @alternate-normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element alternate.urgent {
 | 
					 | 
				
			||||||
    background-color: @alternate-urgent-background;
 | 
					 | 
				
			||||||
    text-color:       @alternate-urgent-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element alternate.active {
 | 
					 | 
				
			||||||
    background-color: @alternate-active-background;
 | 
					 | 
				
			||||||
    text-color:       @alternate-active-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
scrollbar {
 | 
					 | 
				
			||||||
    width:        4px ;
 | 
					 | 
				
			||||||
    padding:      0;
 | 
					 | 
				
			||||||
    handle-width: 8px ;
 | 
					 | 
				
			||||||
    border:       0;
 | 
					 | 
				
			||||||
    handle-color: @alt-fg;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
sidebar {
 | 
					 | 
				
			||||||
    border-color: @separatorcolor;
 | 
					 | 
				
			||||||
    border:       2px dash 0px 0px ;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
button {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
button selected {
 | 
					 | 
				
			||||||
    background-color: @selected-normal-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
inputbar {
 | 
					 | 
				
			||||||
    padding:    1px ;
 | 
					 | 
				
			||||||
    spacing:    0px ;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
    children:   [ prompt,textbox-prompt-colon,entry,case-indicator ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
case-indicator {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
entry {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
prompt {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @blue;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
textbox-prompt-colon {
 | 
					 | 
				
			||||||
    margin:     0px 0.3000em 0.0000em 0.0000em ;
 | 
					 | 
				
			||||||
    expand:     false;
 | 
					 | 
				
			||||||
    str:        ":";
 | 
					 | 
				
			||||||
    text-color: inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
error-message {
 | 
					 | 
				
			||||||
    background-color: rgba ( 0, 0, 0, 0 % );
 | 
					 | 
				
			||||||
    text-color:       @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
rofi.font:     FuraCode Nerd Font Mono 13
 | 
					 | 
				
			||||||
rofi.theme:    default.rasi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
configuration {
 | 
					 | 
				
			||||||
	font: "FuraCode Nerd Font Mono 13";
 | 
					 | 
				
			||||||
	theme: "default.rasi";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,147 +0,0 @@
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * rofi -dump-theme output.
 | 
					 | 
				
			||||||
 * Rofi version: 1.5.2
 | 
					 | 
				
			||||||
 **/
 | 
					 | 
				
			||||||
* {
 | 
					 | 
				
			||||||
    background-color:            rgba ( 0, 0, 0, 0 % );
 | 
					 | 
				
			||||||
    background:                  #161720;
 | 
					 | 
				
			||||||
    blue:                        rgba ( 38, 139, 210, 100 % );
 | 
					 | 
				
			||||||
    foreground:                  #d6e5fb;
 | 
					 | 
				
			||||||
    alt-bg:                      #12151a;
 | 
					 | 
				
			||||||
    alt-fg:                      #02a4fc;
 | 
					 | 
				
			||||||
    red:                         rgba ( 220, 50, 47, 100 % );
 | 
					 | 
				
			||||||
    active-background:           @background;
 | 
					 | 
				
			||||||
    active-foreground:           @blue;
 | 
					 | 
				
			||||||
    alternate-active-background: @alt-bg;
 | 
					 | 
				
			||||||
    alternate-active-foreground: @blue;
 | 
					 | 
				
			||||||
    alternate-normal-background: @alt-bg;
 | 
					 | 
				
			||||||
    alternate-normal-foreground: @foreground;
 | 
					 | 
				
			||||||
    alternate-urgent-background: @alt-bg;
 | 
					 | 
				
			||||||
    alternate-urgent-foreground: @red;
 | 
					 | 
				
			||||||
    border-color:                @background;
 | 
					 | 
				
			||||||
    normal-background:           @background;
 | 
					 | 
				
			||||||
    normal-foreground:           @foreground;
 | 
					 | 
				
			||||||
    selected-active-background:  @blue;
 | 
					 | 
				
			||||||
    selected-active-foreground:  @background;
 | 
					 | 
				
			||||||
    selected-normal-background:  @alt-fg;
 | 
					 | 
				
			||||||
    selected-normal-foreground:  @alt-bg;
 | 
					 | 
				
			||||||
    selected-urgent-background:  @red;
 | 
					 | 
				
			||||||
    selected-urgent-foreground:  @background;
 | 
					 | 
				
			||||||
    separatorcolor:              @foreground;
 | 
					 | 
				
			||||||
    spacing:                     2;
 | 
					 | 
				
			||||||
    urgent-background:           @background;
 | 
					 | 
				
			||||||
    urgent-foreground:           @red;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
window {
 | 
					 | 
				
			||||||
    width:            33%;
 | 
					 | 
				
			||||||
    padding:          5;
 | 
					 | 
				
			||||||
    background-color: @background;
 | 
					 | 
				
			||||||
    border:           1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
mainbox {
 | 
					 | 
				
			||||||
    padding: 0;
 | 
					 | 
				
			||||||
    border:  0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
message {
 | 
					 | 
				
			||||||
    padding:      1px ;
 | 
					 | 
				
			||||||
    border-color: @separatorcolor;
 | 
					 | 
				
			||||||
    border:       2px dash 0px 0px ;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
textbox {
 | 
					 | 
				
			||||||
    text-color: @foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
listview {
 | 
					 | 
				
			||||||
    padding:      2px 0px 0px ;
 | 
					 | 
				
			||||||
    scrollbar:    true;
 | 
					 | 
				
			||||||
    border-color: @separatorcolor;
 | 
					 | 
				
			||||||
    spacing:      2px ;
 | 
					 | 
				
			||||||
    fixed-height: 0;
 | 
					 | 
				
			||||||
    border:       2px dash 0px 0px ;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element {
 | 
					 | 
				
			||||||
    padding: 1px ;
 | 
					 | 
				
			||||||
    border:  0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element normal.normal {
 | 
					 | 
				
			||||||
    background-color: @normal-background;
 | 
					 | 
				
			||||||
    text-color:       @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element normal.urgent {
 | 
					 | 
				
			||||||
    background-color: @urgent-background;
 | 
					 | 
				
			||||||
    text-color:       @urgent-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element normal.active {
 | 
					 | 
				
			||||||
    background-color: @active-background;
 | 
					 | 
				
			||||||
    text-color:       @active-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element selected.normal {
 | 
					 | 
				
			||||||
    background-color: @selected-normal-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element selected.urgent {
 | 
					 | 
				
			||||||
    background-color: @selected-urgent-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-urgent-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element selected.active {
 | 
					 | 
				
			||||||
    background-color: @selected-active-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-active-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element alternate.normal {
 | 
					 | 
				
			||||||
    background-color: @alternate-normal-background;
 | 
					 | 
				
			||||||
    text-color:       @alternate-normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element alternate.urgent {
 | 
					 | 
				
			||||||
    background-color: @alternate-urgent-background;
 | 
					 | 
				
			||||||
    text-color:       @alternate-urgent-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
element alternate.active {
 | 
					 | 
				
			||||||
    background-color: @alternate-active-background;
 | 
					 | 
				
			||||||
    text-color:       @alternate-active-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
scrollbar {
 | 
					 | 
				
			||||||
    width:        4px ;
 | 
					 | 
				
			||||||
    padding:      0;
 | 
					 | 
				
			||||||
    handle-width: 8px ;
 | 
					 | 
				
			||||||
    border:       0;
 | 
					 | 
				
			||||||
    handle-color: @alt-fg;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
sidebar {
 | 
					 | 
				
			||||||
    border-color: @separatorcolor;
 | 
					 | 
				
			||||||
    border:       2px dash 0px 0px ;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
button {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
button selected {
 | 
					 | 
				
			||||||
    background-color: @selected-normal-background;
 | 
					 | 
				
			||||||
    text-color:       @selected-normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
inputbar {
 | 
					 | 
				
			||||||
    padding:    1px ;
 | 
					 | 
				
			||||||
    spacing:    0px ;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
    children:   [ prompt,textbox-prompt-colon,entry,case-indicator ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
case-indicator {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
entry {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
prompt {
 | 
					 | 
				
			||||||
    spacing:    0;
 | 
					 | 
				
			||||||
    text-color: @blue;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
textbox-prompt-colon {
 | 
					 | 
				
			||||||
    margin:     0px 0.3000em 0.0000em 0.0000em ;
 | 
					 | 
				
			||||||
    expand:     false;
 | 
					 | 
				
			||||||
    str:        ":";
 | 
					 | 
				
			||||||
    text-color: inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
error-message {
 | 
					 | 
				
			||||||
    background-color: rgba ( 0, 0, 0, 0 % );
 | 
					 | 
				
			||||||
    text-color:       @normal-foreground;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
[Desktop Entry]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Type=Application
 | 
					 | 
				
			||||||
Version=1.0
 | 
					 | 
				
			||||||
Name=Lock
 | 
					 | 
				
			||||||
Exec=swaylock --screenshots --clock --indicator --indicator-radius 200 --indicator-thickness 5  --effect-greyscale --effect-blur 7x5 --grace 2 --fade-in 1
 | 
					 | 
				
			||||||
Terminal=false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
[Desktop Entry]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Type=Application
 | 
					 | 
				
			||||||
Version=1.0
 | 
					 | 
				
			||||||
Name=Media Controls
 | 
					 | 
				
			||||||
Exec=sh ~/.config/rofi/scripts/media_controls
 | 
					 | 
				
			||||||
Terminal=false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
[Desktop Entry]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Type=Application
 | 
					 | 
				
			||||||
Version=1.0
 | 
					 | 
				
			||||||
Name=Power
 | 
					 | 
				
			||||||
Exec=sh ~/.config/rofi/scripts/power_menu
 | 
					 | 
				
			||||||
Terminal=false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
[Desktop Entry]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Type=Application
 | 
					 | 
				
			||||||
Version=1.0
 | 
					 | 
				
			||||||
Name=Todoist
 | 
					 | 
				
			||||||
Exec=sh todoist-gui
 | 
					 | 
				
			||||||
Terminal=false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
[Desktop Entry]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Type=Application
 | 
					 | 
				
			||||||
Version=1.0
 | 
					 | 
				
			||||||
Name=Bluetooth Controls
 | 
					 | 
				
			||||||
Exec=sh ~/.config/rofi/scripts/btctl
 | 
					 | 
				
			||||||
Terminal=false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
These files are copied over to `~/.local/applications` to provide a means to launch these through rofi's run menu.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
[Desktop Entry]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Type=Application
 | 
					 | 
				
			||||||
Version=1.0
 | 
					 | 
				
			||||||
Name=Wifi Menu
 | 
					 | 
				
			||||||
Exec=sh rofi-wifi-menu
 | 
					 | 
				
			||||||
Terminal=false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,44 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
TARGET :=  $(XDG_DIR)/rofi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DESKTOP_SRC := $(SRC)/desktop
 | 
					 | 
				
			||||||
DESKTOP_TARGET := ~/.local/share/applications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up:
 | 
					 | 
				
			||||||
	if (( $$+commands[rofi] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Setting up rofi"
 | 
					 | 
				
			||||||
		$(mk_link) $(SRC) $(TARGET)
 | 
					 | 
				
			||||||
		$(MAKE) -C $(SRC) desktop_init
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "rofi not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	$(report) header "Removing rofi"
 | 
					 | 
				
			||||||
	$(rm_link) $(TARGET)
 | 
					 | 
				
			||||||
	$(MAKE) -C $(SRC) desktop_remove
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
desktop_init:
 | 
					 | 
				
			||||||
	if [[ ! -e $(DESKTOP_TARGET) ]] ; then
 | 
					 | 
				
			||||||
		$(report) warn "$(DESKTOP_TARGET) does not exist. Skipping."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) header "Adding .desktop files"
 | 
					 | 
				
			||||||
		cd $(DESKTOP_SRC)
 | 
					 | 
				
			||||||
		for i in *.desktop ; do
 | 
					 | 
				
			||||||
			$(mk_link) $(DESKTOP_SRC)/$$i $(DESKTOP_TARGET)/$$i	
 | 
					 | 
				
			||||||
		done
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
desktop_remove:
 | 
					 | 
				
			||||||
	if [[ ! -e $(DESKTOP_TARGET) ]] ; then
 | 
					 | 
				
			||||||
		$(report) warn "$(DESKTOP_TARGET) does not exist. Skipping."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) header "Removing .desktop files"
 | 
					 | 
				
			||||||
		cd $(DESKTOP_SRC)
 | 
					 | 
				
			||||||
		for i in *.desktop ; do
 | 
					 | 
				
			||||||
			$(rm_link) $(DESKTOP_TARGET)/$$i
 | 
					 | 
				
			||||||
		done
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,42 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# cmds=($(bluetoothctl help | cut -d' ' -f1 | sed 's/[\x01-\x1F\x7F]//g' | sed 's/\[[0-9];[0-9]\+m//g'))
 | 
					 | 
				
			||||||
# unset "cmds[2]"
 | 
					 | 
				
			||||||
# unset "cmds[1]"
 | 
					 | 
				
			||||||
# unset "cmds[0]"
 | 
					 | 
				
			||||||
cmds=(list devices power connect disconnect)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $1 in
 | 
					 | 
				
			||||||
  h|help|-h|--help)
 | 
					 | 
				
			||||||
    echo `This is a simple rofi script to connect to trusted devices.`
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
_rofi() {
 | 
					 | 
				
			||||||
  if [ -n "$1" ] ; then
 | 
					 | 
				
			||||||
    rofi -dmenu -i -theme applet -p "Bluetooth" -mesg "$1"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    rofi -dmenu -i -theme applet -p "Bluetooth"
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
choice=$(printf '%s\n' "${cmds[@]}" | _rofi)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$choice" in
 | 
					 | 
				
			||||||
  list|devices)
 | 
					 | 
				
			||||||
    bluetoothctl ${choice} | _rofi "bluetoothctl $choice"
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  connect|disconnect)
 | 
					 | 
				
			||||||
    device=$(bluetoothctl devices | _rofi "bluetoothctl list")
 | 
					 | 
				
			||||||
    device=$(echo $device | cut -d' ' -f2)
 | 
					 | 
				
			||||||
    bluetoothctl ${choice} ${device} && notify-send "Bluetoothctl" "${choice}ed from ${device}"
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  power)
 | 
					 | 
				
			||||||
    onoff=(on off)
 | 
					 | 
				
			||||||
    ans=$(printf '%s\n' "${onoff[@]}" | _rofi "bluetoothctl power")
 | 
					 | 
				
			||||||
    bluetoothctl power ${ans} && notify-send "Bluetoothctl" "Power $ans"
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  *)
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STATUS="$(playerctl status)"
 | 
					 | 
				
			||||||
MSG="$(playerctl metadata --format '{{xesam:title}} - {{xesam:artist}}')"
 | 
					 | 
				
			||||||
OPTIONS="玲 Back
 | 
					 | 
				
			||||||
怜 Next
 | 
					 | 
				
			||||||
懶 Play/Pause
 | 
					 | 
				
			||||||
 Stop"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SELECTED="$(
 | 
					 | 
				
			||||||
rofi -dmenu \
 | 
					 | 
				
			||||||
  -theme applet \
 | 
					 | 
				
			||||||
  -mesg "${MSG:-"No infomation"}" \
 | 
					 | 
				
			||||||
  -p "${STATUS:-"Not Playing"}" \
 | 
					 | 
				
			||||||
  -i \
 | 
					 | 
				
			||||||
  -line-padding 4  <<< $OPTIONS
 | 
					 | 
				
			||||||
)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo $SELECTED
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $SELECTED in
 | 
					 | 
				
			||||||
  *Next)
 | 
					 | 
				
			||||||
    playerctl next ;;
 | 
					 | 
				
			||||||
  *Back)
 | 
					 | 
				
			||||||
    playerctl previous ;;
 | 
					 | 
				
			||||||
  *Play/Pause)
 | 
					 | 
				
			||||||
    playerctl play-pause ;;
 | 
					 | 
				
			||||||
  *Stop)
 | 
					 | 
				
			||||||
    playerctl stop ;;
 | 
					 | 
				
			||||||
  *)
 | 
					 | 
				
			||||||
    echo $SELCTED ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,43 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPTIONS=" Lock
 | 
					 | 
				
			||||||
鈴 Sleep
 | 
					 | 
				
			||||||
 Logout
 | 
					 | 
				
			||||||
 Poweroff
 | 
					 | 
				
			||||||
淚 Restart"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SELECTED="$(
 | 
					 | 
				
			||||||
rofi -dmenu \
 | 
					 | 
				
			||||||
  -theme applet \
 | 
					 | 
				
			||||||
  -p "System" \
 | 
					 | 
				
			||||||
  -i \
 | 
					 | 
				
			||||||
  -line-padding 4  <<< "$OPTIONS"
 | 
					 | 
				
			||||||
)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "$SELECTED"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $SELECTED in
 | 
					 | 
				
			||||||
  *Lock)
 | 
					 | 
				
			||||||
    swaylock \
 | 
					 | 
				
			||||||
      --screenshots \
 | 
					 | 
				
			||||||
      --clock \
 | 
					 | 
				
			||||||
      --indicator \
 | 
					 | 
				
			||||||
      --indicator-radius 200 \
 | 
					 | 
				
			||||||
      --indicator-thickness 5   \
 | 
					 | 
				
			||||||
      --effect-greyscale \
 | 
					 | 
				
			||||||
      --effect-blur 7x5 \
 | 
					 | 
				
			||||||
      --grace 2 \
 | 
					 | 
				
			||||||
      --fade-in 1 ;;
 | 
					 | 
				
			||||||
  *Sleep)
 | 
					 | 
				
			||||||
    systemctl hibernate ;;
 | 
					 | 
				
			||||||
  *Logout)
 | 
					 | 
				
			||||||
    swaymsg exit ;;
 | 
					 | 
				
			||||||
  *Poweroff)
 | 
					 | 
				
			||||||
    systemctl poweroff ;;
 | 
					 | 
				
			||||||
  *Restart)
 | 
					 | 
				
			||||||
    systemctl reboot ;;
 | 
					 | 
				
			||||||
  *)
 | 
					 | 
				
			||||||
    echo "$SELCTED" ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								rofi/wifi
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								rofi/wifi
									
									
									
									
									
								
							| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
# Config for rofi-wifi-menu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# position values: 
 | 
					 | 
				
			||||||
# 1 2 3
 | 
					 | 
				
			||||||
# 8 0 4
 | 
					 | 
				
			||||||
# 7 6 5 
 | 
					 | 
				
			||||||
POSITION=3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#y-offset
 | 
					 | 
				
			||||||
YOFF=35
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#x-offset
 | 
					 | 
				
			||||||
XOFF=-225
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#fields to be displayed
 | 
					 | 
				
			||||||
FIELDS=SSID,SECURITY,BARS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#font
 | 
					 | 
				
			||||||
FONT="FiraCode 10"
 | 
					 | 
				
			||||||
							
								
								
									
										36
									
								
								sway/config
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								sway/config
									
									
									
									
									
								
							| 
						 | 
					@ -1,36 +0,0 @@
 | 
				
			||||||
### Variables
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
set $mod Mod4
 | 
					 | 
				
			||||||
set $ctrl Control
 | 
					 | 
				
			||||||
set $left h
 | 
					 | 
				
			||||||
set $down j
 | 
					 | 
				
			||||||
set $up k
 | 
					 | 
				
			||||||
set $right l
 | 
					 | 
				
			||||||
set $term kitty
 | 
					 | 
				
			||||||
set $scripts  $HOME/.config/sway/scripts
 | 
					 | 
				
			||||||
set $rofi-scripts $HOME/.config/rofi/scripts
 | 
					 | 
				
			||||||
set $tty-popup $scripts/tty-popup
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set $menu bash $scripts/menu
 | 
					 | 
				
			||||||
set $pass_menu $tty-popup pass $scripts/fzf-pass
 | 
					 | 
				
			||||||
set $clip_menu $tty-popup pass $scripts/clipboard menu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set $printscreen bash $scripts/printscreen
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Support for picture in picture mode.
 | 
					 | 
				
			||||||
# There is currently no support for automatically positioning it in the bottom
 | 
					 | 
				
			||||||
# left corner as xdotool doesn't exist in wayland
 | 
					 | 
				
			||||||
set $PIP floating enabled ; sticky enabled ; border pixel 0
 | 
					 | 
				
			||||||
for_window [class="mpv"] $PIP
 | 
					 | 
				
			||||||
for_window [class="pip"] $PIP
 | 
					 | 
				
			||||||
for_window [class="feh"] $PIP
 | 
					 | 
				
			||||||
for_window [class="firefox" title="^Picture-in-Picture$"] $PIP
 | 
					 | 
				
			||||||
for_window [app_id="tty-popup"] focus; $PIP
 | 
					 | 
				
			||||||
for_window [app_id="tty-popup" title="^pass$"] resize set 33 ppt 33 ppt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Status Bar:
 | 
					 | 
				
			||||||
bar {
 | 
					 | 
				
			||||||
  swaybar_command waybar
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include config.d/*
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,48 +0,0 @@
 | 
				
			||||||
### Start Nextcloud.
 | 
					 | 
				
			||||||
exec --no-startup-id nextcloud 2>&1 >/tmp/nextcloud.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### ProtonMail Bridge
 | 
					 | 
				
			||||||
exec --no-startup-id protonmail-bridge 2>&1 >/tmp/mail.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Make things a little easier easier on the eyes.
 | 
					 | 
				
			||||||
exec --no-startup-id gammastep  2>&1 >/tmp/gammastep.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Clipboard manager
 | 
					 | 
				
			||||||
exec --no-startup-id $scripts/clipboard daemon 2>&1 >/tmp/clipboardmanager.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###  Notifications
 | 
					 | 
				
			||||||
# https://github.com/emersion/mako
 | 
					 | 
				
			||||||
exec --no-startup-id mako 2>&1 >/tmp/mako.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Pushover alerts
 | 
					 | 
				
			||||||
# https://github.com/jangxx/SchubsiGo
 | 
					 | 
				
			||||||
exec --no-startup-id SchubsiGo 2>&1 >/tmp/SchubsiGo.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### ydotool - imagine not having to copy stuff.
 | 
					 | 
				
			||||||
# https://github.com/ReimuNotMoe/ydotool
 | 
					 | 
				
			||||||
exec --no-startup-id ydotoold 2>&1 >/tmp/ydotoold.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Autotiling - because i3/sways spiting is weird.
 | 
					 | 
				
			||||||
# https://github.com/nwg-piotr/autotiling
 | 
					 | 
				
			||||||
exec --no-startup-id autotiling
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Idle configuration
 | 
					 | 
				
			||||||
exec swayidle -w \
 | 
					 | 
				
			||||||
         timeout 280 notify-send "鈴 sleeping in 20 seconds" -t 5000 -c 'sleep' \
 | 
					 | 
				
			||||||
         timeout 285 'light -O && let "a = $(light -G) / 2" && light -S $a '\
 | 
					 | 
				
			||||||
              resume 'light -I' \
 | 
					 | 
				
			||||||
         timeout 300 'swaylock --screenshots --clock --indicator --indicator-radius 200 --indicator-thickness 5   --effect-greyscale --effect-blur 7x5 --grace 2 --fade-in 1' \
 | 
					 | 
				
			||||||
         timeout 280 notify-send "鈴 sleeping in 20 seconds" -t 5000 -c 'sleep' \
 | 
					 | 
				
			||||||
         timeout 600 'swaymsg "output * dpms off"' \
 | 
					 | 
				
			||||||
              resume 'swaymsg "output * dpms on"' \
 | 
					 | 
				
			||||||
         before-sleep 'swaylock --screenshots --clock --indicator --indicator-radius 200 --indicator-thickness 5   --effect-greyscale --effect-blur 7x5 --grace 2 --fade-in 1'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# wob configuration
 | 
					 | 
				
			||||||
exec_always {
 | 
					 | 
				
			||||||
    killall -q wob || true
 | 
					 | 
				
			||||||
    mkfifo /tmp/wobpipe
 | 
					 | 
				
			||||||
    tail -f /tmp/wobpipe | $scripts/sanitize_wob | wob
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim: ft=cfg
 | 
					 | 
				
			||||||
# -*- mode: conf-space -*-
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,25 +0,0 @@
 | 
				
			||||||
### Input configuration
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
 | 
					 | 
				
			||||||
# Read `man 5 sway-input` for more information about this section.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
input "1133:45079:MX_Master_Mouse" {
 | 
					 | 
				
			||||||
  natural_scroll enable
 | 
					 | 
				
			||||||
  accel_profile adaptive
 | 
					 | 
				
			||||||
  pointer_accel -0.3
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Beter touchpad support
 | 
					 | 
				
			||||||
input "2:7:SynPS/2_Synaptics_TouchPad" {
 | 
					 | 
				
			||||||
  dwt enabled
 | 
					 | 
				
			||||||
  click_method clickfinger
 | 
					 | 
				
			||||||
  natural_scroll enabled
 | 
					 | 
				
			||||||
  middle_emulation enabled
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# bind caps to ctrl
 | 
					 | 
				
			||||||
input "1:1:AT_Translated_Set_2_keyboard" {
 | 
					 | 
				
			||||||
  xkb_options ctrl:nocaps
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim: ft=cfg
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,150 +0,0 @@
 | 
				
			||||||
### Key bindings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# start a terminal
 | 
					 | 
				
			||||||
bindsym $mod+Return exec $term
 | 
					 | 
				
			||||||
# kill focused window
 | 
					 | 
				
			||||||
bindsym $mod+q kill
 | 
					 | 
				
			||||||
# start your launcher
 | 
					 | 
				
			||||||
bindsym $mod+space exec $menu
 | 
					 | 
				
			||||||
# gopass prompt
 | 
					 | 
				
			||||||
bindsym $mod+backslash exec $pass_menu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bindsym $mod+semicolon exec $scripts/sws.sh --dmenu-cmd "rofi -dmenu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# reload the configuration file
 | 
					 | 
				
			||||||
bindsym $mod+Shift+c reload
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bindsym $mod++c exec $clip_menu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# exit sway (logs you out of your Wayland session)
 | 
					 | 
				
			||||||
bindsym $mod+Shift+e exec swaynag -t \
 | 
					 | 
				
			||||||
        warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' \
 | 
					 | 
				
			||||||
        -b 'Yes, exit sway' 'swaymsg exit'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Move your focus around
 | 
					 | 
				
			||||||
bindsym $mod+$left focus left
 | 
					 | 
				
			||||||
bindsym $mod+$down focus down
 | 
					 | 
				
			||||||
bindsym $mod+$up focus up
 | 
					 | 
				
			||||||
bindsym $mod+$right focus right
 | 
					 | 
				
			||||||
# or use $mod+[up|down|left|right]
 | 
					 | 
				
			||||||
bindsym $mod+Left focus left
 | 
					 | 
				
			||||||
bindsym $mod+Down focus down
 | 
					 | 
				
			||||||
bindsym $mod+Up focus up
 | 
					 | 
				
			||||||
bindsym $mod+Right focus right
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# _move_ the focused window with the same, but add Shift
 | 
					 | 
				
			||||||
bindsym $mod+Shift+$left move left
 | 
					 | 
				
			||||||
bindsym $mod+Shift+$down move down
 | 
					 | 
				
			||||||
bindsym $mod+Shift+$up move up
 | 
					 | 
				
			||||||
bindsym $mod+Shift+$right move right
 | 
					 | 
				
			||||||
# ditto, with arrow 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Workspaces:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
bindsym $mod+0 workspace 10
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
bindsym $mod+Shift+0 move container to workspace 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Printscreen functions
 | 
					 | 
				
			||||||
bindsym print exec grim -g "$(slurp)" - | swappy -f -
 | 
					 | 
				
			||||||
bindsym $ctrl+print exec farge --image-viewer imv
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
################################################################################
 | 
					 | 
				
			||||||
# Layout stuff:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You can "split" the current object of your focus with
 | 
					 | 
				
			||||||
# $mod+b or $mod+v, for horizontal and vertical splits
 | 
					 | 
				
			||||||
# respectively.
 | 
					 | 
				
			||||||
bindsym $mod+b splith
 | 
					 | 
				
			||||||
bindsym $mod+v splitv
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Switch the current container between different layout styles
 | 
					 | 
				
			||||||
bindsym $mod+s layout stacking
 | 
					 | 
				
			||||||
bindsym $mod+w layout tabbed
 | 
					 | 
				
			||||||
bindsym $mod+e layout toggle split
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make the current focus fullscreen
 | 
					 | 
				
			||||||
bindsym $mod+f fullscreen
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Adding Sticky mode. This will keep a floating window on all screens.
 | 
					 | 
				
			||||||
bindsym $mod+Shift+s sticky toggle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Toggle the current focus between tiling and floating mode
 | 
					 | 
				
			||||||
bindsym $mod+Shift+f floating toggle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Swap focus between the tiling area and the floating area
 | 
					 | 
				
			||||||
bindsym $mod+d focus mode_toggle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# move focus to the parent container
 | 
					 | 
				
			||||||
bindsym $mod+a focus parent
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Move the currently focused window to the scratchpad
 | 
					 | 
				
			||||||
bindsym $mod+Shift+minus move scratchpad
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Show the next scratchpad window or hide the focused scratchpad window.
 | 
					 | 
				
			||||||
# If there are multiple scratchpad windows, this command cycles through them.
 | 
					 | 
				
			||||||
bindsym $mod+grave scratchpad show
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Resizing containers:
 | 
					 | 
				
			||||||
mode "resize" {
 | 
					 | 
				
			||||||
    # left will shrink the containers width
 | 
					 | 
				
			||||||
    bindsym $left resize shrink width 10px
 | 
					 | 
				
			||||||
    # right will grow the containers width
 | 
					 | 
				
			||||||
    bindsym $down resize grow height 10px
 | 
					 | 
				
			||||||
    # up will shrink the containers height
 | 
					 | 
				
			||||||
    bindsym $up resize shrink height 10px
 | 
					 | 
				
			||||||
    # down will grow the containers height
 | 
					 | 
				
			||||||
    bindsym $right resize grow width 10px
 | 
					 | 
				
			||||||
    # ditto, with arrow keys
 | 
					 | 
				
			||||||
    bindsym Left resize shrink width 10px
 | 
					 | 
				
			||||||
    bindsym Down resize grow height 10px
 | 
					 | 
				
			||||||
    bindsym Up resize shrink height 10px
 | 
					 | 
				
			||||||
    bindsym Right resize grow width 10px
 | 
					 | 
				
			||||||
    # return to default mode
 | 
					 | 
				
			||||||
    bindsym Return mode "default"
 | 
					 | 
				
			||||||
    bindsym Escape mode "default"
 | 
					 | 
				
			||||||
    bindsym $mod+r mode "default"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
bindsym $mod+r mode "resize"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Media/Function Keys
 | 
					 | 
				
			||||||
bindsym XF86AudioRaiseVolume  exec pactl set-sink-volume @DEFAULT_SINK@ +5% && pamixer --get-volume > /tmp/wobpipe
 | 
					 | 
				
			||||||
bindsym XF86AudioLowerVolume  exec pactl set-sink-volume @DEFAULT_SINK@ -5% && pamixer --get-volume > /tmp/wobpipe
 | 
					 | 
				
			||||||
bindsym XF86AudioMute         exec pactl set-sink-mute @DEFAULT_SINK@ toggle && ( `pamixer --get-mute` && echo 0 || pamixer --get-volume ) > /tmp/wobpipe
 | 
					 | 
				
			||||||
bindsym XF86AudioMicMute      exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
 | 
					 | 
				
			||||||
bindsym XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > /tmp/wobpipe
 | 
					 | 
				
			||||||
bindsym XF86MonBrightnessUp   exec light -A 5 && light -G | cut -d'.' -f1 > /tmp/wobpipe
 | 
					 | 
				
			||||||
bindsym Pause                 exec playerctl play-pause
 | 
					 | 
				
			||||||
bindsym Shift+Pause           exec bash $rofi-scripts/media_controls
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Drag floating windows by holding down $mod and left mouse button.
 | 
					 | 
				
			||||||
# Resize them with right mouse button + $mod.
 | 
					 | 
				
			||||||
# Despite the name, also works for non-floating windows.
 | 
					 | 
				
			||||||
# Change normal to inverse to use left mouse button for resizing and right
 | 
					 | 
				
			||||||
# mouse button for dragging.
 | 
					 | 
				
			||||||
floating_modifier $mod normal
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,22 +0,0 @@
 | 
				
			||||||
################################################################################
 | 
					 | 
				
			||||||
# Output configuration
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Example configuration:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   output HDMI-A-1 resolution 1920x1080 position 1920,0
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
output * bg ~/sync/wall/current fill
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
output eDP-1 {
 | 
					 | 
				
			||||||
  scale 1
 | 
					 | 
				
			||||||
  pos 0 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
output DP-1 {
 | 
					 | 
				
			||||||
  scale 1
 | 
					 | 
				
			||||||
  pos 2560 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim: ft=cfg
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,31 +0,0 @@
 | 
				
			||||||
################################################################################
 | 
					 | 
				
			||||||
# UI tweaks
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set $focus_bg    #12e689
 | 
					 | 
				
			||||||
set $urgent_bg   #ff4551
 | 
					 | 
				
			||||||
set $inactive_bg #161720
 | 
					 | 
				
			||||||
set $light_fg    #1f212e
 | 
					 | 
				
			||||||
set $dark_fg     #aab5c6
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Font stuff
 | 
					 | 
				
			||||||
font pango:FiraCode Nerd Font 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Gaps
 | 
					 | 
				
			||||||
gaps inner 5
 | 
					 | 
				
			||||||
gaps outer 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Colors
 | 
					 | 
				
			||||||
#  class                 border        backgr        text       indicator     child_border
 | 
					 | 
				
			||||||
client.focused           $focus_bg     $focus_bg     $light_fg  $focus_bg     $focus_bg
 | 
					 | 
				
			||||||
client.focused_inactive  $inactive_bg  $inactive_bg  $dark_fg   $inactive_bg  $inactive_bg
 | 
					 | 
				
			||||||
client.unfocused         $inactive_bg  $inactive_bg  $dark_fg   $inactive_bg  $inactive_bg
 | 
					 | 
				
			||||||
client.urgent            $urgent_bg    $urgent_bg    $light_fg  $urgent_bg    $urgent_bg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# GTK 3 settings
 | 
					 | 
				
			||||||
# See https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland for more info.
 | 
					 | 
				
			||||||
exec_always scripts/import-gsettings \
 | 
					 | 
				
			||||||
    gtk-theme:gtk-theme-name \
 | 
					 | 
				
			||||||
    icon-theme:gtk-icon-theme-name \
 | 
					 | 
				
			||||||
    cursor-theme:gtk-cursor-theme-name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim: ft=cfg
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,76 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
TARGET :=  $(XDG_DIR)/sway
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PATH_ICON_BOSTON := "$$HOME/.icons/Boston"
 | 
					 | 
				
			||||||
PATH_GTK_ANT_NEBULA := "$$HOME/.theme/Ant-Nebula"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up: init
 | 
					 | 
				
			||||||
	if (( ! $$+commands[swaymsg] )) ; then
 | 
					 | 
				
			||||||
		$(report) debug "swaymsg not installed. Skipping."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) header "Reloading sway"
 | 
					 | 
				
			||||||
		swaymsg reload ; $(report) "sway reload"
 | 
					 | 
				
			||||||
		$(MAKE) -C $(SRC) update_icons
 | 
					 | 
				
			||||||
		$(MAKE) -C $(SRC) update_theme
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	$(report) header "Removing sway"
 | 
					 | 
				
			||||||
	$(rm_link) $(TARGET)
 | 
					 | 
				
			||||||
	if [ -e $(PATH_ICON_BOSTON) ] ; then
 | 
					 | 
				
			||||||
		rm -rf $(PATH_ICON_BOSTON) \
 | 
					 | 
				
			||||||
			; $(report) "Removed $(PATH_ICON_BOSTON)"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	if [ -e $(PATH_GTK_ANT_NEBULA) ] ; then
 | 
					 | 
				
			||||||
		rm -rf $(PATH_GTK_ANT_NEBULA) \
 | 
					 | 
				
			||||||
			; $(report) "Removed $(PATH_GTK_ANT_NEBULA)"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
init:
 | 
					 | 
				
			||||||
	if (( ! $$+commands[sway] )) ; then
 | 
					 | 
				
			||||||
		$(report) debug "Sway not installed. Skipping."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) header "Setting up sway"
 | 
					 | 
				
			||||||
		$(mk_link) $(SRC) $(TARGET)
 | 
					 | 
				
			||||||
		$(MAKE) -C $(SRC) init_icons
 | 
					 | 
				
			||||||
		$(MAKE) -C $(SRC) init_theme
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
init_icons:
 | 
					 | 
				
			||||||
	if [ ! -e $(PATH_ICON_BOSTON) ] ; then
 | 
					 | 
				
			||||||
		git clone "https://github.com/heychrisd/Boston-Icons" $(PATH_ICON_BOSTON)
 | 
					 | 
				
			||||||
			; $(report) "Installed Boston icons."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "$(PATH_ICON_BOSTON) already exists. Skipping"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
init_theme:
 | 
					 | 
				
			||||||
	if [ ! -e $(PATH_GTK_ANT_NEBULA) ] ; then
 | 
					 | 
				
			||||||
		git clone "https://github.com/EliverLara/Ant-Nebula" $(PATH_GTK_ANT_NEBULA)
 | 
					 | 
				
			||||||
			; $(report) "Installed Ant Nebula GTK."
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "$(PATH_GTK_ANT_NEBULA) already exists. Skipping"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	if (( $$+commands[gsettings] )) ; then
 | 
					 | 
				
			||||||
		gsettings set org.gnome.desktop.interface gtk-theme "Ant-Nebula" \
 | 
					 | 
				
			||||||
			&& gsettings set org.gnome.desktop.wm.preferences theme "Ant-Nebula" \
 | 
					 | 
				
			||||||
			; $(report) "Set theme in gnome"
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "gsettings not installed. Skipping"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
update_icons:
 | 
					 | 
				
			||||||
	if [ ! -e $(PATH_ICON_BOSTON) ] ; then
 | 
					 | 
				
			||||||
		cd $(PATH_ICON_BOSTON)
 | 
					 | 
				
			||||||
		git pull ; $(report) "Updated Boston icons."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
update_theme:
 | 
					 | 
				
			||||||
	if [ ! -e $(PATH_GTK_ANT_NEBULA) ] ; then
 | 
					 | 
				
			||||||
		cd $(PATH_GTK_ANT_NEBULA)
 | 
					 | 
				
			||||||
		git pull ; $(report) "Updated Ant Nebula GTK."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,150 +0,0 @@
 | 
				
			||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
workdir="${XDG_DATA_HOME:-$HOME/.local/share/clipboard/history}"
 | 
					 | 
				
			||||||
maxsize="${CLIPBOARD_MAX_SIZE:-30M}"
 | 
					 | 
				
			||||||
histcount="${CLIPBOARD_HISTORY_COUNT:-300}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
red=$(tput setaf 1)
 | 
					 | 
				
			||||||
reset=$(tput sgr0)
 | 
					 | 
				
			||||||
delim="\034"
 | 
					 | 
				
			||||||
umask 077
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mkdir -p "$workdir"
 | 
					 | 
				
			||||||
cd "$workdir" || exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
daemon(){
 | 
					 | 
				
			||||||
    echo "values may be subject to change"
 | 
					 | 
				
			||||||
    echo "  workdir:   $workdir"
 | 
					 | 
				
			||||||
    echo "  maxsize:   $maxsize"
 | 
					 | 
				
			||||||
    echo "  histcount: $histcount"
 | 
					 | 
				
			||||||
    echo "  current:   $(find "${workdir}" | wc | awk '{print $2}')"
 | 
					 | 
				
			||||||
    wl-paste -w "$0" on-copy
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
on-copy(){
 | 
					 | 
				
			||||||
    if [ -f "$workdir/.lock" ] ; then
 | 
					 | 
				
			||||||
        echo "script is currently locked."
 | 
					 | 
				
			||||||
        exit 0
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    file="$(date +%s)"
 | 
					 | 
				
			||||||
    cat | sed -e 's/^[ \t]*//' >"$file"
 | 
					 | 
				
			||||||
    ext="$(file --mime-type "$file" | cut -d' ' -f2 | cut -d'/' -f2)"
 | 
					 | 
				
			||||||
    mv "$file" "$file.$ext"
 | 
					 | 
				
			||||||
    fdupes -idN .
 | 
					 | 
				
			||||||
    find . -type f -size 0 -delete
 | 
					 | 
				
			||||||
    find . -type f -size "+$maxsize" -delete
 | 
					 | 
				
			||||||
    find . -type f -print0 \
 | 
					 | 
				
			||||||
        | sort -zn \
 | 
					 | 
				
			||||||
        | head -z --lines="-$histcount"  \
 | 
					 | 
				
			||||||
        | xargs -r -0 rm
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
list(){
 | 
					 | 
				
			||||||
    find . -type f -printf '%P\0' \
 | 
					 | 
				
			||||||
        | sort -znr \
 | 
					 | 
				
			||||||
        | while IFS= read -r -d '' file ; do
 | 
					 | 
				
			||||||
        if [[ "$file" =~ \.(plain|x-python)$ ]]; then
 | 
					 | 
				
			||||||
            printf "%s${delim}" "$file" "${red}${reset} $(sed ':a;N;$!ba;s/\n/+/g' < "$file")"
 | 
					 | 
				
			||||||
        elif [[ "$file" =~ \.octet-stream$ ]]; then
 | 
					 | 
				
			||||||
            printf "%s${delim}" "$file" "${red}${reset} $(sed ':a;N;$!ba;s/\n/+/g' < "$file")"
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            printf "%s${delim}" "$file" "${red}${reset} $file"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        printf '\0'
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
parse-file(){
 | 
					 | 
				
			||||||
        echo "$1" | awk '{print $1}' FS="$delim"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
on-select(){
 | 
					 | 
				
			||||||
        read -r -d '' result
 | 
					 | 
				
			||||||
        if [ -z "$result" ]; then
 | 
					 | 
				
			||||||
            exit 0
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        wl-paste
 | 
					 | 
				
			||||||
        local file
 | 
					 | 
				
			||||||
        file="$(parse-file "${result}")"
 | 
					 | 
				
			||||||
        wl-copy < "$file"
 | 
					 | 
				
			||||||
        swaymsg exec "ydotool type $(wl-paste | sed -e "s/'/'\\\\''/g; 1s/^/'/; \$s/\$/'/")"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
menu(){
 | 
					 | 
				
			||||||
       list | fzf --read0 +s \
 | 
					 | 
				
			||||||
         --info=hidden \
 | 
					 | 
				
			||||||
         --reverse \
 | 
					 | 
				
			||||||
         -d "${delim}" --nth ..2 --with-nth 2 \
 | 
					 | 
				
			||||||
         --bind="del:execute-silent($0 delete {})+reload($0 list),f1:execute($0 qr {})" \
 | 
					 | 
				
			||||||
         --prompt='clip:: ' \
 | 
					 | 
				
			||||||
         --pointer='➜' \
 | 
					 | 
				
			||||||
         --color="gutter:0,prompt:4" \
 | 
					 | 
				
			||||||
         --no-multi \
 | 
					 | 
				
			||||||
         --preview "$0 preview {}" \
 | 
					 | 
				
			||||||
         --preview-window=down:3:wrap \
 | 
					 | 
				
			||||||
         --ansi \
 | 
					 | 
				
			||||||
         | on-select
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
usage(){
 | 
					 | 
				
			||||||
    cat <<EOF
 | 
					 | 
				
			||||||
Hello, this is the usuage menu. $0 supports the following arguments.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 - deamon :: starts a process that watches the clipboard, calling on-copy on copy.
 | 
					 | 
				
			||||||
 - on-copy :: saves clipped content to history folder. Dedups, and trims as well.
 | 
					 | 
				
			||||||
 - menu :: clip history menu using fzf.
 | 
					 | 
				
			||||||
 - list :: null terminated list that fzf populates. Need fo fzf reload.
 | 
					 | 
				
			||||||
 - lock :: prevents daemon/on-clip from saving value. Use for passwords, etc.
 | 
					 | 
				
			||||||
 - unlock :: like lock, but in reverse.
 | 
					 | 
				
			||||||
 - preview :: the preview used by fzf. Requires clip file.
 | 
					 | 
				
			||||||
 - delete :: deletes the file, requires file.
 | 
					 | 
				
			||||||
 - qr :: bind to f1. Displays a qr code of the value.
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
qr(){
 | 
					 | 
				
			||||||
    local file
 | 
					 | 
				
			||||||
    file="$(parse-file "$1")"
 | 
					 | 
				
			||||||
    cat $file |
 | 
					 | 
				
			||||||
        qrencode -o - \
 | 
					 | 
				
			||||||
            --size=25 \
 | 
					 | 
				
			||||||
            --background=161720 \
 | 
					 | 
				
			||||||
            --foreground=AAB5C6 |
 | 
					 | 
				
			||||||
        feh -
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
delete(){
 | 
					 | 
				
			||||||
    local file
 | 
					 | 
				
			||||||
    file="$(parse-file "$1")"
 | 
					 | 
				
			||||||
    rm $file
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
preview(){
 | 
					 | 
				
			||||||
    local file
 | 
					 | 
				
			||||||
    file="$(parse-file "$1")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ -f "$1" ]; then
 | 
					 | 
				
			||||||
        kitty +kitten icat --silent --stdin=no "$1"
 | 
					 | 
				
			||||||
        return
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    bat -l bash --color always -pp "$file"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$1" in
 | 
					 | 
				
			||||||
    daemon|on-copy|menu|list)
 | 
					 | 
				
			||||||
        $1;;
 | 
					 | 
				
			||||||
    lock)
 | 
					 | 
				
			||||||
        touch "$workdir/.lock" ; echo "locked";;
 | 
					 | 
				
			||||||
    unlock)
 | 
					 | 
				
			||||||
        rm -f "$workdir/.lock" ; echo "unlocked";;
 | 
					 | 
				
			||||||
    preview|delete|qr)
 | 
					 | 
				
			||||||
        var=$1
 | 
					 | 
				
			||||||
        shift ; $var $*;;
 | 
					 | 
				
			||||||
    *)
 | 
					 | 
				
			||||||
        usage;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exit;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,55 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# Credit goes to https://git.reekynet.com/ReekyMarko/fzf-pass for this.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd "$HOME/.password-store" || exit 1
 | 
					 | 
				
			||||||
PASSFILE=$(tree -Ffi \
 | 
					 | 
				
			||||||
  | grep '.gpg' \
 | 
					 | 
				
			||||||
  | sed 's/.gpg$//g' \
 | 
					 | 
				
			||||||
  | sed 's/^..//' \
 | 
					 | 
				
			||||||
  | fzf \
 | 
					 | 
				
			||||||
  --color="gutter:0,prompt:2" \
 | 
					 | 
				
			||||||
  --no-info \
 | 
					 | 
				
			||||||
  --no-multi \
 | 
					 | 
				
			||||||
  --pointer='➜' \
 | 
					 | 
				
			||||||
  --preview "echo {} && (echo {} | sed 's/./-/g') && pass {}" \
 | 
					 | 
				
			||||||
  --prompt='pass::' \
 | 
					 | 
				
			||||||
  --reverse )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$PASSFILE" ]; then
 | 
					 | 
				
			||||||
	exit 0
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RESP=$(cat <<EOF | fzf
 | 
					 | 
				
			||||||
Autotype
 | 
					 | 
				
			||||||
Username
 | 
					 | 
				
			||||||
Password
 | 
					 | 
				
			||||||
Page
 | 
					 | 
				
			||||||
QR
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$RESP" in
 | 
					 | 
				
			||||||
  Autotype)
 | 
					 | 
				
			||||||
    swaymsg exec "source ~/.profile \
 | 
					 | 
				
			||||||
      && ydotool type \"\$(pass get_user $PASSFILE)\" \
 | 
					 | 
				
			||||||
      && ydotool key TAB \
 | 
					 | 
				
			||||||
      && ydotool type \"\$(pass get_pass $PASSFILE)\""
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  Username)
 | 
					 | 
				
			||||||
    swaymsg exec "source ~/.profile \
 | 
					 | 
				
			||||||
      && ydotool type \"\$(pass get_user $PASSFILE)\""
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  Password)
 | 
					 | 
				
			||||||
    swaymsg exec "source ~/.profile \
 | 
					 | 
				
			||||||
      && ydotool type \"\$(pass get_pass $PASSFILE)\""
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  Page)
 | 
					 | 
				
			||||||
    pass "$PASSFILE" | LESS=R less
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  QR)
 | 
					 | 
				
			||||||
    swaymsg exec "pass show \"${PASSFILE}\" --qrcode"
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  *)
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
#! /bin/sh
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
# Lifted from https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
 | 
					 | 
				
			||||||
# usage: import-gsettings <gsettings key>:<settings.ini key> <gsettings key>:<settings.ini key> ...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
expression=""
 | 
					 | 
				
			||||||
for pair in "$@"; do
 | 
					 | 
				
			||||||
    IFS=:; set -- $pair
 | 
					 | 
				
			||||||
    expressions="$expressions -e 's:^$2=(.*)$:gsettings set org.gnome.desktop.interface $1 \1:e'"
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
IFS=
 | 
					 | 
				
			||||||
eval exec sed -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini >/dev/null
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
#! /bin/sh
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
rofi \
 | 
					 | 
				
			||||||
    -show drun \
 | 
					 | 
				
			||||||
    -p run \
 | 
					 | 
				
			||||||
    -run-command 'swaymsg exec -- {cmd}'
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
#! /bin/sh
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
file=~/media/pictures/Screenshots/Screenshot-$(date '+%Y%m%d%H%M%S').png
 | 
					 | 
				
			||||||
grim -g "$(slurp)" $file \
 | 
					 | 
				
			||||||
     && wl-copy $file \
 | 
					 | 
				
			||||||
	   && notify-send -i $file "File copied to clipboard"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,10 +0,0 @@
 | 
				
			||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# -*- sh -*-
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
while read IN
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
  [[ ! $IN =~ ^[+-]?[0-9]+$ ]] && IN=0
 | 
					 | 
				
			||||||
  [[ $IN -gt 100 ]] && IN=100
 | 
					 | 
				
			||||||
  [[ $IN -lt 0 ]] && IN=0
 | 
					 | 
				
			||||||
  echo $IN
 | 
					 | 
				
			||||||
done < "${1:-/dev/stdin}"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,133 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Author: Adrien Le Guillou
 | 
					 | 
				
			||||||
# License: MIT
 | 
					 | 
				
			||||||
set -e # error if a command as non 0 exit
 | 
					 | 
				
			||||||
set -u # error if undefined variable
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Default parameters
 | 
					 | 
				
			||||||
FORMAT="W:%W | %A - %T"
 | 
					 | 
				
			||||||
DMENU="dmenu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Doc
 | 
					 | 
				
			||||||
NAME="$(basename "$0")"
 | 
					 | 
				
			||||||
VERSION="0.2"
 | 
					 | 
				
			||||||
DESCRIPTION="Window switcher for Sway using dmenu"
 | 
					 | 
				
			||||||
HELP="
 | 
					 | 
				
			||||||
$NAME. $VERSION - $DESCRIPTION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Usage: 
 | 
					 | 
				
			||||||
    $NAME [-f | --format <format>] [-d | --dmenu-cmd <command>] 
 | 
					 | 
				
			||||||
          [-h | --help] [-v | --version]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Options:
 | 
					 | 
				
			||||||
    -d CMD, --dmenu-cmd CMD\t\t[default: \"dmenu\"]
 | 
					 | 
				
			||||||
        set the \`dmenu\` command to use (ex \"rofi -dmenu\")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -f FORMAT, --format FORMAT\t\t[default: \"$FORMAT\"]
 | 
					 | 
				
			||||||
        set the format for the window picker
 | 
					 | 
				
			||||||
            %O: Output (Display)
 | 
					 | 
				
			||||||
            %W: Workspace
 | 
					 | 
				
			||||||
            %A: Application
 | 
					 | 
				
			||||||
            %T: Window Title
 | 
					 | 
				
			||||||
        (window_id) is appended at the end to identify the window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -v, --version
 | 
					 | 
				
			||||||
        print version info and exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -h, --help      
 | 
					 | 
				
			||||||
        display this help and exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Examples:
 | 
					 | 
				
			||||||
    # Default options work well if you have dmenu installed
 | 
					 | 
				
			||||||
    sws.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Use a different dmenu provider
 | 
					 | 
				
			||||||
    sws.sh --dmenu-cmd \"wofi -d\"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Add outputs name to the selector
 | 
					 | 
				
			||||||
    sws --format \"[%O] W:%W | %A - %T\"
 | 
					 | 
				
			||||||
"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Options parsing
 | 
					 | 
				
			||||||
INVALID_ARGS=0 
 | 
					 | 
				
			||||||
OPTS=$(getopt -n $NAME -o f:d:hv \
 | 
					 | 
				
			||||||
       --long format:,dmenu-cmd:,help,version -- "$@") || INVALID_ARGS=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Exit with error and print $HELP if an invalid argument is passed
 | 
					 | 
				
			||||||
# the previous command is allowed to fail for this purpose
 | 
					 | 
				
			||||||
if [ "$INVALID_ARGS" -ne "0" ]
 | 
					 | 
				
			||||||
then
 | 
					 | 
				
			||||||
    echo "$HELP"
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Required for getopt parsing
 | 
					 | 
				
			||||||
eval set -- "$OPTS"
 | 
					 | 
				
			||||||
unset OPTS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
while :
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
    case "$1" in
 | 
					 | 
				
			||||||
        -f | --format)
 | 
					 | 
				
			||||||
            FORMAT=$2
 | 
					 | 
				
			||||||
            shift 2 
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
        -d | --dmenu-cmd)
 | 
					 | 
				
			||||||
            DMENU=$2
 | 
					 | 
				
			||||||
            shift 2 
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
        -h | --help)
 | 
					 | 
				
			||||||
            echo "$HELP"
 | 
					 | 
				
			||||||
            exit 
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
        -v | --version)
 | 
					 | 
				
			||||||
            echo "Version $VERSION"
 | 
					 | 
				
			||||||
            exit 
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
        --) 
 | 
					 | 
				
			||||||
            shift
 | 
					 | 
				
			||||||
            break 
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
        *)
 | 
					 | 
				
			||||||
            echo "$HELP"
 | 
					 | 
				
			||||||
            exit 1
 | 
					 | 
				
			||||||
            break 
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# FORMAT as a `jq` concatenation string
 | 
					 | 
				
			||||||
FORMAT="$FORMAT (%I)"
 | 
					 | 
				
			||||||
FORMAT=$(echo "$FORMAT" | \
 | 
					 | 
				
			||||||
        sed  's/%O/" + .output + "/
 | 
					 | 
				
			||||||
              s/%W/" + .workspace + "/
 | 
					 | 
				
			||||||
              s/%A/" + .app_id + "/
 | 
					 | 
				
			||||||
              s/%T/" + .name + "/
 | 
					 | 
				
			||||||
              s/%I/" + .id + "/
 | 
					 | 
				
			||||||
              s/"/\"/
 | 
					 | 
				
			||||||
              s/\(.*\)/\"\1\"/')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Get the container ID from the node tree
 | 
					 | 
				
			||||||
CON_ID=$(swaymsg -t get_tree | \
 | 
					 | 
				
			||||||
    jq -r ".nodes[] 
 | 
					 | 
				
			||||||
        | {output: .name, content: .nodes[]}
 | 
					 | 
				
			||||||
        | {output: .output, workspace: .content.name, 
 | 
					 | 
				
			||||||
          apps: .content 
 | 
					 | 
				
			||||||
            | .. 
 | 
					 | 
				
			||||||
            | {id: .id?|tostring, name: .name?, app_id: .app_id?, shell: .shell?} 
 | 
					 | 
				
			||||||
            | select(.app_id != null or .shell != null)}
 | 
					 | 
				
			||||||
        | {output: .output, workspace: .workspace, 
 | 
					 | 
				
			||||||
           id: .apps.id, app_id: .apps.app_id, name: .apps.name }
 | 
					 | 
				
			||||||
        | $FORMAT
 | 
					 | 
				
			||||||
        | tostring" | \
 | 
					 | 
				
			||||||
    $DMENU -i -p "Window Switcher")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Requires the actual `id` to be at the end and between paretheses
 | 
					 | 
				
			||||||
CON_ID=${CON_ID##*(}
 | 
					 | 
				
			||||||
CON_ID=${CON_ID%)}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo 2
 | 
					 | 
				
			||||||
# Focus on the chosen window
 | 
					 | 
				
			||||||
swaymsg [con_id=$CON_ID] focus
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
#! /bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This can be accessed by child process to tell if this is a popup pane.
 | 
					 | 
				
			||||||
export TTY_POPUP=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (( $# == 0)) ; then
 | 
					 | 
				
			||||||
    echo "Invalid usage. I need an argument."
 | 
					 | 
				
			||||||
    echo "  ➜  $0 title \"command or script\""
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (( $# > 1 )) ; then
 | 
					 | 
				
			||||||
    title=$1
 | 
					 | 
				
			||||||
    shift 
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
kitty --class "${class:-"tty-popup"}" --title "$title" -e "$@" &
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
config.json
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,86 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "layer": "top",
 | 
					 | 
				
			||||||
  "height": 35,
 | 
					 | 
				
			||||||
  "modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
 | 
					 | 
				
			||||||
  "modules-center": ["sway/window"],
 | 
					 | 
				
			||||||
  "modules-right": [
 | 
					 | 
				
			||||||
    "pulseaudio",
 | 
					 | 
				
			||||||
    "custom/network",
 | 
					 | 
				
			||||||
    "backlight",
 | 
					 | 
				
			||||||
    "battery",
 | 
					 | 
				
			||||||
    "clock",
 | 
					 | 
				
			||||||
    "tray",
 | 
					 | 
				
			||||||
    "idle_inhibitor"
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "sway/workspaces": {
 | 
					 | 
				
			||||||
    "disable-scroll": true,
 | 
					 | 
				
			||||||
    "all-outputs": true
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "sway/mode": {
 | 
					 | 
				
			||||||
    "format": "<span style=\"italic\">{}</span>"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "idle_inhibitor": {
 | 
					 | 
				
			||||||
    "format": "{icon}",
 | 
					 | 
				
			||||||
    "format-icons": {
 | 
					 | 
				
			||||||
      "activated": "",
 | 
					 | 
				
			||||||
      "deactivated": ""
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "tray": {
 | 
					 | 
				
			||||||
    "spacing": 10
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "clock": {
 | 
					 | 
				
			||||||
    "tooltip-format": "{:%Y-%m-%d | %H:%M}",
 | 
					 | 
				
			||||||
    "format-alt": "{:%Y-%m-%d}"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "backlight": {
 | 
					 | 
				
			||||||
    "format": "{icon} {percent}% ",
 | 
					 | 
				
			||||||
    "format-icons": ["", "", "", ""]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "battery": {
 | 
					 | 
				
			||||||
    "interval": 1,
 | 
					 | 
				
			||||||
    "states": {
 | 
					 | 
				
			||||||
      "good": 95,
 | 
					 | 
				
			||||||
      "warning": 30,
 | 
					 | 
				
			||||||
      "critical": 15
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "format": " {capacity}%",
 | 
					 | 
				
			||||||
    "format-discharging": "{icon}   {capacity}%",
 | 
					 | 
				
			||||||
    "format-icons": ["", "", "", "", ""]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "pulseaudio": {
 | 
					 | 
				
			||||||
    "format": "{icon} {volume}%",
 | 
					 | 
				
			||||||
    "format-bluetooth": "{volume}% {icon}",
 | 
					 | 
				
			||||||
    "format-muted": "",
 | 
					 | 
				
			||||||
    "format-icons": {
 | 
					 | 
				
			||||||
      "headphones": "",
 | 
					 | 
				
			||||||
      "handsfree": "",
 | 
					 | 
				
			||||||
      "headset": "",
 | 
					 | 
				
			||||||
      "phone": "",
 | 
					 | 
				
			||||||
      "portable": "",
 | 
					 | 
				
			||||||
      "car": "",
 | 
					 | 
				
			||||||
      "default": ["", ""]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "on-click": "pavucontrol"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "custom/media": {
 | 
					 | 
				
			||||||
    "format": "{icon} {}",
 | 
					 | 
				
			||||||
    "return-type": "json",
 | 
					 | 
				
			||||||
    "max-length": 40,
 | 
					 | 
				
			||||||
    "format-icons": {
 | 
					 | 
				
			||||||
      "spotify": "",
 | 
					 | 
				
			||||||
      "default": "🎜"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "on-click": "playerctl  play-pause",
 | 
					 | 
				
			||||||
    "escape": true,
 | 
					 | 
				
			||||||
    "exec": "$HOME/.config/waybar/custom_modules/mediaplayer.py 2> /dev/null"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "custom/network": {
 | 
					 | 
				
			||||||
    "escape": true,
 | 
					 | 
				
			||||||
    "exec": "$HOME/.config/waybar/custom_modules/wifi.sh status 2> /dev/null",
 | 
					 | 
				
			||||||
    "on-click": "rofi-wifi-menu",
 | 
					 | 
				
			||||||
    "on-click-right": "swaymsg exec \"~/.config/sway/scripts/tty-popup tunnel  ~/.config/waybar/custom_modules/wifi.sh onclick\"",
 | 
					 | 
				
			||||||
    "restart-interval": 1,
 | 
					 | 
				
			||||||
    "return-type": "json"
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,126 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env python3
 | 
					 | 
				
			||||||
import argparse
 | 
					 | 
				
			||||||
import logging
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
import signal
 | 
					 | 
				
			||||||
import gi
 | 
					 | 
				
			||||||
import json
 | 
					 | 
				
			||||||
gi.require_version('Playerctl', '2.0')
 | 
					 | 
				
			||||||
from gi.repository import Playerctl, GLib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
logger = logging.getLogger(__name__)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def write_output(text, player):
 | 
					 | 
				
			||||||
    logger.info('Writing output')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    output = {'text': text,
 | 
					 | 
				
			||||||
              'class': 'custom-' + player.props.player_name,
 | 
					 | 
				
			||||||
              'alt': player.props.player_name}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sys.stdout.write(json.dumps(output) + '\n')
 | 
					 | 
				
			||||||
    sys.stdout.flush()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def on_play(player, status, manager):
 | 
					 | 
				
			||||||
    logger.info('Received new playback status')
 | 
					 | 
				
			||||||
    on_metadata(player, player.props.metadata, manager)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def on_metadata(player, metadata, manager):
 | 
					 | 
				
			||||||
    logger.info('Received new metadata')
 | 
					 | 
				
			||||||
    track_info = ''
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if player.props.player_name == 'spotify' and \
 | 
					 | 
				
			||||||
            'mpris:trackid' in metadata.keys() and \
 | 
					 | 
				
			||||||
            ':ad:' in player.props.metadata['mpris:trackid']:
 | 
					 | 
				
			||||||
        track_info = 'AD PLAYING'
 | 
					 | 
				
			||||||
    elif player.get_artist() != '' and player.get_title() != '':
 | 
					 | 
				
			||||||
        track_info = '{artist} - {title}'.format(artist=player.get_artist(),
 | 
					 | 
				
			||||||
                                                 title=player.get_title())
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if player.props.status != 'Playing':
 | 
					 | 
				
			||||||
        track_info = ' ' + track_info
 | 
					 | 
				
			||||||
    write_output(track_info, player)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def on_player_appeared(manager, player, selected_player=None):
 | 
					 | 
				
			||||||
    if player is not None and player.name == selected_player:
 | 
					 | 
				
			||||||
        init_player(manager, player)
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        logger.debug("New player appeared, but it's not the selected player, skipping")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def on_player_vanished(manager, player):
 | 
					 | 
				
			||||||
    logger.info('Player has vanished')
 | 
					 | 
				
			||||||
    sys.stdout.write('\n')
 | 
					 | 
				
			||||||
    sys.stdout.flush()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def init_player(manager, name):
 | 
					 | 
				
			||||||
    logger.debug('Initialize player: {player}'.format(player=name.name))
 | 
					 | 
				
			||||||
    player = Playerctl.Player.new_from_name(name)
 | 
					 | 
				
			||||||
    player.connect('playback-status', on_play, manager)
 | 
					 | 
				
			||||||
    player.connect('metadata', on_metadata, manager)
 | 
					 | 
				
			||||||
    manager.manage_player(player)
 | 
					 | 
				
			||||||
    on_metadata(player, player.props.metadata, manager)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def signal_handler(sig, frame):
 | 
					 | 
				
			||||||
    logger.debug('Received signal to stop, exiting')
 | 
					 | 
				
			||||||
    sys.stdout.write('\n')
 | 
					 | 
				
			||||||
    sys.stdout.flush()
 | 
					 | 
				
			||||||
    # loop.quit()
 | 
					 | 
				
			||||||
    sys.exit(0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def parse_arguments():
 | 
					 | 
				
			||||||
    parser = argparse.ArgumentParser()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Increase verbosity with every occurance of -v
 | 
					 | 
				
			||||||
    parser.add_argument('-v', '--verbose', action='count', default=0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Define for which player we're listening
 | 
					 | 
				
			||||||
    parser.add_argument('--player')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return parser.parse_args()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    arguments = parse_arguments()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Initialize logging
 | 
					 | 
				
			||||||
    logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
 | 
					 | 
				
			||||||
                        format='%(name)s %(levelname)s %(message)s')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Logging is set by default to WARN and higher.
 | 
					 | 
				
			||||||
    # With every occurrence of -v it's lowered by one
 | 
					 | 
				
			||||||
    logger.setLevel(max((3 - arguments.verbose) * 10, 0))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Log the sent command line arguments
 | 
					 | 
				
			||||||
    logger.debug('Arguments received {}'.format(vars(arguments)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    manager = Playerctl.PlayerManager()
 | 
					 | 
				
			||||||
    loop = GLib.MainLoop()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
 | 
					 | 
				
			||||||
    manager.connect('player-vanished', on_player_vanished)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    signal.signal(signal.SIGINT, signal_handler)
 | 
					 | 
				
			||||||
    signal.signal(signal.SIGTERM, signal_handler)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for player in manager.props.player_names:
 | 
					 | 
				
			||||||
        if arguments.player is not None and arguments.player != player.name:
 | 
					 | 
				
			||||||
            logger.debug('{player} is not the filtered player, skipping it'
 | 
					 | 
				
			||||||
                         .format(player=player.name)
 | 
					 | 
				
			||||||
                         )
 | 
					 | 
				
			||||||
            continue
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        init_player(manager, player)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    loop.run()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,31 +0,0 @@
 | 
				
			||||||
#! /usr/bin/env bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
status(){
 | 
					 | 
				
			||||||
  connected_val="$(iwgetid 1> /dev/null ; echo $?)"
 | 
					 | 
				
			||||||
  if [ "$connected_val" -eq 255 ]; then
 | 
					 | 
				
			||||||
    echo '{"text": "⚠ Disconnected", "class":"disconnected"}'
 | 
					 | 
				
			||||||
    return
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    wg_val="$(wg 2> /dev/null ; echo $?)"
 | 
					 | 
				
			||||||
    if [ "$wg_val" -eq 0 ]; then
 | 
					 | 
				
			||||||
      echo "{\"text\": \" $(iwgetid -r)\", \"class\":\"connected\"}"
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      echo "{\"text\": \"聯 $(iwgetid -r)\", \"class\":\"secured\"}"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
onclick(){
 | 
					 | 
				
			||||||
  wg_val="$(wg 2> /dev/null ; echo $?)"
 | 
					 | 
				
			||||||
  if [ "$wg_val" -eq 0 ]; then
 | 
					 | 
				
			||||||
    echo "Securing Connection"
 | 
					 | 
				
			||||||
    wg-quick up mullvad-us18
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    echo "Disconnecting tunnel"
 | 
					 | 
				
			||||||
    wg-quick down mullvad-us18
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$1" in
 | 
					 | 
				
			||||||
    onclick|status) $1 ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,25 +0,0 @@
 | 
				
			||||||
# -*- mode: makefile-gmake; -*-
 | 
					 | 
				
			||||||
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include ../lib/shared.mk
 | 
					 | 
				
			||||||
TARGET :=  $(XDG_DIR)/waybar
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
up: init
 | 
					 | 
				
			||||||
	if (( $$+commands[swaymsg] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Reloading waybar"
 | 
					 | 
				
			||||||
		swaymsg reload ; $(report) "sway reload"
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "swaymsg not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
down:
 | 
					 | 
				
			||||||
	$(report) header "Removing waybar"
 | 
					 | 
				
			||||||
	$(rm_link) $(TARGET)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
init:
 | 
					 | 
				
			||||||
	if (( $$+commands[waybar] )) ; then
 | 
					 | 
				
			||||||
		$(report) header "Setting up waybar"
 | 
					 | 
				
			||||||
		$(mk_link) $(SRC) $(TARGET)
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		$(report) debug "waybar not installed. Skipping."
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
							
								
								
									
										111
									
								
								waybar/style.css
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								waybar/style.css
									
									
									
									
									
								
							| 
						 | 
					@ -1,111 +0,0 @@
 | 
				
			||||||
* {
 | 
					 | 
				
			||||||
    border: none;
 | 
					 | 
				
			||||||
    border-radius: 0;
 | 
					 | 
				
			||||||
    font-family: Ubuntu Nerd Font, NotoSans Nerd Font, Roboto, Helvetica, Arial, sans-serif;
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
    min-height: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
window#waybar {
 | 
					 | 
				
			||||||
    background: rgba(43, 48, 59, 0.0);
 | 
					 | 
				
			||||||
    border-bottom: 3px solid rgba(100, 114, 125, 0.0);
 | 
					 | 
				
			||||||
    color: #ffffff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
 | 
					 | 
				
			||||||
#workspaces button {
 | 
					 | 
				
			||||||
    padding: 0 5px;
 | 
					 | 
				
			||||||
    background: transparent;
 | 
					 | 
				
			||||||
    color: #ffffff;
 | 
					 | 
				
			||||||
    background: rgba(43, 48, 59, 0.4);
 | 
					 | 
				
			||||||
    border-bottom: 3px solid transparent;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#workspaces button.focused {
 | 
					 | 
				
			||||||
    background: #64727D;
 | 
					 | 
				
			||||||
    border-bottom: 3px solid #ffffff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#workspaces button.urgent {
 | 
					 | 
				
			||||||
    background-color: #eb4d4b;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#mode {
 | 
					 | 
				
			||||||
    background: #64727D;
 | 
					 | 
				
			||||||
    border-bottom: 3px solid #ffffff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-network , #custom-media, #tray, #mode, #idle_inhibitor {
 | 
					 | 
				
			||||||
    padding: 0 10px;
 | 
					 | 
				
			||||||
    margin: 0 3px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#clock {
 | 
					 | 
				
			||||||
    background-color: #64727D;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#battery {
 | 
					 | 
				
			||||||
    background-color: #ffffff;
 | 
					 | 
				
			||||||
    color: #000000;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#battery.charging {
 | 
					 | 
				
			||||||
    color: #ffffff;
 | 
					 | 
				
			||||||
    background-color: #26A65B;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@keyframes blink {
 | 
					 | 
				
			||||||
    to {
 | 
					 | 
				
			||||||
        background-color: #ffffff;
 | 
					 | 
				
			||||||
        color: #000000;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#battery.critical:not(.charging) {
 | 
					 | 
				
			||||||
    background: #eb4d4b;
 | 
					 | 
				
			||||||
    color: #ffffff;
 | 
					 | 
				
			||||||
    animation-name: blink;
 | 
					 | 
				
			||||||
    animation-duration: 1s;
 | 
					 | 
				
			||||||
    animation-timing-function: linear;
 | 
					 | 
				
			||||||
    animation-iteration-count: infinite;
 | 
					 | 
				
			||||||
    animation-direction: alternate;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#backlight {
 | 
					 | 
				
			||||||
    background: #90b1b1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#custom-network {
 | 
					 | 
				
			||||||
    background: #2980b9;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#custom-network.secured {
 | 
					 | 
				
			||||||
    background: #9b59b6;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#custom-network.disconnected {
 | 
					 | 
				
			||||||
    background: #f53c3c;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#pulseaudio {
 | 
					 | 
				
			||||||
    background: #f1c40f;
 | 
					 | 
				
			||||||
    color: #000000;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#pulseaudio.muted {
 | 
					 | 
				
			||||||
    background: #90b1b1;
 | 
					 | 
				
			||||||
    color: #2a5c45;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#tray {
 | 
					 | 
				
			||||||
    background-color: #2980b9;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#idle_inhibitor {
 | 
					 | 
				
			||||||
    background-color: #2d3436;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#idle_inhibitor.activated {
 | 
					 | 
				
			||||||
    background-color: #ecf0f1;
 | 
					 | 
				
			||||||
    color: #2d3436;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user