Initial commit
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
|
||||
Xft.dpi: 96
|
||||
Xtf.rgba: rgb
|
||||
Xft.antialias: true
|
||||
Xft.hinting: true
|
||||
Xft.authint: false
|
||||
Xft.hintstyle: hintfull
|
||||
Xft.lcdfilter: lcddefault
|
||||
|
||||
! See man-pages for avaiable resources:
|
||||
! https://linux.die.net/man/1/urxvt
|
||||
URxvt.scrollBar: false
|
||||
URxvt.skipBuiltinGlyphs: true
|
||||
URxvt.termName: xterm-256color
|
||||
URxvt.font: xft:Iosevka Custom:size=11
|
||||
URxvt.foreground: #bdbdbd
|
||||
URxvt.background: #080808
|
||||
URxvt.color0: #323437
|
||||
URxvt.color1: #ff5454
|
||||
URxvt.color2: #8cc85f
|
||||
URxvt.color3: #e3c78a
|
||||
URxvt.color4: #80a0ff
|
||||
URxvt.color5: #cf87e8
|
||||
URxvt.color6: #79dac8
|
||||
URxvt.color7: #c6c6c6
|
||||
URxvt.color8: #949494
|
||||
URxvt.color9: #ff5189
|
||||
URxvt.color10: #36c692
|
||||
URxvt.color11: #c2c292
|
||||
URxvt.color12: #74b2ff
|
||||
URxvt.color13: #ae81ff
|
||||
URxvt.color14: #85dc85
|
||||
URxvt.color15: #e4e4e4
|
||||
|
||||
XTerm.termName: xterm-256color
|
||||
XTerm.ttyModes: erase ^?
|
||||
XTerm.vt100.locale: false
|
||||
XTerm.vt100.utf8: true
|
||||
XTerm.vt100.metaSendsEscape: true
|
||||
XTerm.vt100.backarrowKey: false
|
||||
XTerm.vt100.scrollBar: false
|
||||
XTerm.vt100.renderFont: true
|
||||
XTerm.vt100.showMissingGlyphs: true
|
||||
XTerm.vt100.faceName: xft:Iosevka Custom
|
||||
XTerm.vt100.faceSize: 11
|
||||
XTerm.vt100.foreground: #bdbdbd
|
||||
XTerm.vt100.background: #080808
|
||||
XTerm.vt100.color0: #323437
|
||||
XTerm.vt100.color1: #ff5454
|
||||
XTerm.vt100.color2: #8cc85f
|
||||
XTerm.vt100.color3: #e3c78a
|
||||
XTerm.vt100.color4: #80a0ff
|
||||
XTerm.vt100.color5: #cf87e8
|
||||
XTerm.vt100.color6: #79dac8
|
||||
XTerm.vt100.color7: #c6c6c6
|
||||
XTerm.vt100.color8: #949494
|
||||
XTerm.vt100.color9: #ff5189
|
||||
XTerm.vt100.color10: #36c692
|
||||
XTerm.vt100.color11: #c2c292
|
||||
XTerm.vt100.color12: #74b2ff
|
||||
XTerm.vt100.color13: #ae81ff
|
||||
XTerm.vt100.color14: #85dc85
|
||||
XTerm.vt100.color15: #e4e4e4
|
||||
|
||||
Xcursor.theme: Adwaita
|
||||
Xcursor.size: 16
|
||||
@@ -0,0 +1,68 @@
|
||||
[colors.primary]
|
||||
foreground = "#bdbdbd"
|
||||
background = "#080808"
|
||||
|
||||
[colors.cursor]
|
||||
cursor = "#9e9e9e"
|
||||
text = "#080808"
|
||||
|
||||
[colors.normal]
|
||||
black = "#323437"
|
||||
red = "#ff5454"
|
||||
green = "#8cc85f"
|
||||
yellow = "#e3c78a"
|
||||
blue = "#80a0ff"
|
||||
magenta = "#cf87e8"
|
||||
cyan = "#79dac8"
|
||||
white = "#c6c6c6"
|
||||
|
||||
[colors.bright]
|
||||
black = "#949494"
|
||||
red = "#ff5189"
|
||||
green = "#36c692"
|
||||
yellow = "#c2c292"
|
||||
blue = "#74b2ff"
|
||||
magenta = "#ae81ff"
|
||||
cyan = "#85dc85"
|
||||
white = "#e4e4e4"
|
||||
|
||||
# [colors.search.focused_match]
|
||||
# background = "#000000"
|
||||
# foreground = "#cccccc"
|
||||
|
||||
# [colors.search.matches]
|
||||
# background = "#cccccc"
|
||||
# foreground = "#000000"
|
||||
|
||||
[colors.selection]
|
||||
background = "#b2ceee"
|
||||
text = "#080808"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
cursor = "#b2ceee"
|
||||
text = "#080808"
|
||||
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[font.normal]
|
||||
family = "Iosevka Custom"
|
||||
style = "Regular"
|
||||
|
||||
[mouse]
|
||||
hide_when_typing = true
|
||||
|
||||
[shell]
|
||||
program = "zsh"
|
||||
|
||||
[window]
|
||||
dynamic_padding = true
|
||||
decorations = "None"
|
||||
|
||||
[window.dimensions]
|
||||
columns = 120
|
||||
lines = 36
|
||||
|
||||
[window.padding]
|
||||
x = 3
|
||||
y = 3
|
||||
@@ -0,0 +1,459 @@
|
||||
# See dunst(5) for all configuration options
|
||||
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = keyboard
|
||||
|
||||
### Geometry ###
|
||||
|
||||
# dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
width = (0, 300)
|
||||
|
||||
# The maximum height of a single notification, excluding the frame.
|
||||
height = 300
|
||||
|
||||
# Position the notification in the top right corner
|
||||
origin = bottom-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 10x10
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
|
||||
# Maximum number of notification (0 means no limit)
|
||||
notification_limit = 20
|
||||
|
||||
### Progress bar ###
|
||||
|
||||
# Turn on the progess bar. It appears when a progress hint is passed with
|
||||
# for example dunstify -h int:value:12
|
||||
progress_bar = true
|
||||
|
||||
# Set the progress bar height. This includes the frame, so make sure
|
||||
# it's at least twice as big as the frame width.
|
||||
progress_bar_height = 10
|
||||
|
||||
# Set the frame width of the progress bar
|
||||
progress_bar_frame_width = 1
|
||||
|
||||
# Set the minimum width for the progress bar
|
||||
progress_bar_min_width = 150
|
||||
|
||||
# Set the maximum width for the progress bar
|
||||
progress_bar_max_width = 300
|
||||
|
||||
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||
progress_bar_corner_radius = 0
|
||||
|
||||
# Corner radius for the icon image.
|
||||
icon_corner_radius = 0
|
||||
|
||||
# Show how many messages are currently hidden (because of
|
||||
# notification_limit).
|
||||
indicate_hidden = yes
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||
transparency = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
# If gap_size is greater than 0, this setting will be ignored.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 8
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 8
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 0
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 3
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#323437"
|
||||
|
||||
# Size of gap to display between notifications - requires a compositor.
|
||||
# If value is greater than 0, separator_height will be ignored and a border
|
||||
# of size frame_width will be drawn around each notification instead.
|
||||
# Click events on gaps do not currently propagate to applications below.
|
||||
gap_size = 0
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 60
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Noto Sans 11
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||
# define all lookup paths.
|
||||
enable_recursive_icon_lookup = true
|
||||
|
||||
# Set icon theme (only used for recursive icon lookup)
|
||||
icon_theme = Adwaita
|
||||
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||
# icon_theme = "Adwaita, breeze"
|
||||
|
||||
# Align icons left/right/top/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 32
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 128
|
||||
|
||||
# Paths to default icons (only neccesary when not using recursive icon lookup)
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### Wayland ###
|
||||
# These settings are Wayland-specific. They have no effect when using X11
|
||||
|
||||
# Uncomment this if you want to let notications appear under fullscreen
|
||||
# applications (default: overlay)
|
||||
# layer = top
|
||||
|
||||
# Set this to true to use X11 output on Wayland.
|
||||
force_xwayland = false
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||
# such action, open the context menu.
|
||||
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||
# ones, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# * context: Open context menu for the notification.
|
||||
# * context_all: Open context menu for all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#222222"
|
||||
foreground = "#888888"
|
||||
timeout = 5
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#285577"
|
||||
foreground = "#ffffff"
|
||||
timeout = 5
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# set_category
|
||||
# timeout
|
||||
# urgency
|
||||
# icon_position
|
||||
# skip_display
|
||||
# history_ignore
|
||||
# action_name
|
||||
# word_wrap
|
||||
# ellipsize
|
||||
# alignment
|
||||
# hide_text
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# skip_display = true
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
@@ -0,0 +1,26 @@
|
||||
show_calendar = 1
|
||||
show_timezones = 1
|
||||
mark_today = 1
|
||||
show_week_numbers = 1
|
||||
close_on_unfocus = 1
|
||||
# external_viewer = sunbird \-showdate "%Y\-%m\-%d"
|
||||
clock_format = %a %d %b %H:%M
|
||||
force_lang = en_US.utf8
|
||||
mainwindow_decorated = 0
|
||||
mainwindow_keep_above = 1
|
||||
mainwindow_sticky = 0
|
||||
mainwindow_skip_taskbar = 1
|
||||
mainwindow_resizable = 0
|
||||
mainwindow_position = mouse
|
||||
# Desktop
|
||||
mainwindow_xoffset = -96
|
||||
mainwindow_yoffset = -96
|
||||
# Laptop
|
||||
#mainwindow_xoffset = -48
|
||||
#mainwindow_yoffset = -42
|
||||
clock_label = Local
|
||||
clock_tz = :Europe/Stockholm
|
||||
clock_label = EDT
|
||||
clock_tz = :US/Eastern
|
||||
clock_label = UTC
|
||||
clock_tz = :UTC
|
||||
@@ -0,0 +1,6 @@
|
||||
file:///home/oscar/Documents
|
||||
file:///home/oscar/Music
|
||||
file:///home/oscar/Pictures
|
||||
file:///home/oscar/Videos
|
||||
file:///home/oscar/Downloads
|
||||
file:///home/oscar/repos repos
|
||||
@@ -0,0 +1,3 @@
|
||||
[Settings]
|
||||
gtk-application-prefer-dark-theme=1
|
||||
gtk-theme-name=Adwaita
|
||||
@@ -0,0 +1,3 @@
|
||||
[Settings]
|
||||
gtk-application-prefer-dark-theme=1
|
||||
gtk-theme-name=Adwaita
|
||||
@@ -0,0 +1,277 @@
|
||||
# This file has been auto-generated by i3-config-wizard(1).
|
||||
# It will not be overwritten, so edit it as you like.
|
||||
#
|
||||
# Should you change your keyboard layout some time, delete
|
||||
# this file and re-run i3-config-wizard(1).
|
||||
#
|
||||
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod4
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:Noto Sans 11
|
||||
|
||||
# To disable titlebar
|
||||
default_border pixel 1
|
||||
default_floating_border pixel 1
|
||||
|
||||
for_window [class="Thunar" instance="thunar"] floating enable
|
||||
for_window [class="Gnome-screenshot" instance="gnome-screenshot"] floating enable
|
||||
for_window [class="File-roller" instance="file-roller"] floating enable
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Linux (brightnessctl)
|
||||
set $get_brightness $(brightnessctl info | grep -Eo '[0-9]+%' | cut -d% -f1)
|
||||
set $incr_brightness brightnessctl set +5%
|
||||
set $decr_brightness brightnessctl set 5%-
|
||||
|
||||
# FreeBSD (intel-backlight)
|
||||
# set $get_brightness $(intel_backlight | grep -Eo '[0-9]+%' | cut -d% -f1)
|
||||
# set $incr_brightness intel_backlight incr || true
|
||||
# set $decr_brightness intel_backlight decr || true
|
||||
|
||||
bindsym XF86MonBrightnessUp \
|
||||
exec --no-startup-id $incr_brightness \
|
||||
&& notify-send \
|
||||
-u low \
|
||||
-h int:value:$get_brightness \
|
||||
-h string:synchronous:volume "Brightness: $get_brightness %"
|
||||
bindsym XF86MonBrightnessDown \
|
||||
exec --no-startup-id $decr_brightness \
|
||||
&& notify-send \
|
||||
-u low \
|
||||
-h int:value:$get_brightness \
|
||||
-h string:synchronous:volume "Brightness: $get_brightness %"
|
||||
|
||||
bindsym XF86AudioPlay \
|
||||
exec --no-startup-id playerctl play-pause \
|
||||
&& sleep 0.05 \
|
||||
&& notify-send \
|
||||
-u low \
|
||||
-h string:synchronous:play "Media: $(playerctl status)"
|
||||
bindsym XF86AudioNext \
|
||||
exec --no-startup-id playerctl next
|
||||
bindsym XF86AudioPrev \
|
||||
exec --no-startup-id playerctl previous
|
||||
bindsym XF86AudioStop \
|
||||
exec --no-startup-id playerctl stop
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# change focus
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+h move left
|
||||
bindsym $mod+Shift+j move down
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+l move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+v split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+c split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+Shift+a layout stacking
|
||||
bindsym $mod+Shift+w layout tabbed
|
||||
bindsym $mod+Shift+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+x exec --no-startup-id \
|
||||
"i3-nagbar \
|
||||
-t warning \
|
||||
-p \
|
||||
-m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' \
|
||||
-B 'Yes, exit i3' \
|
||||
'i3-msg exit'"
|
||||
bindsym $mod+Ctrl+Shift+x exec --no-startup-id i3-msg exit
|
||||
# lock screen
|
||||
bindsym $mod+Shift+o exec --no-startup-id i3lock --color 000000 && sleep 5 && xset dpms force off
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym h resize shrink width 5 px
|
||||
bindsym j resize grow height 5 px
|
||||
bindsym k resize shrink height 5 px
|
||||
bindsym l resize grow width 5 px
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 5 px
|
||||
bindsym Down resize grow height 5 px
|
||||
bindsym Up resize shrink height 5 px
|
||||
bindsym Right resize grow width 5 px
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Custom options
|
||||
focus_follows_mouse yes
|
||||
mouse_warping none
|
||||
# hide_edge_borders smart
|
||||
|
||||
# Custom bindings
|
||||
bindsym $mod+Ctrl+Right move workspace to output right
|
||||
bindsym $mod+Ctrl+Left move workspace to output left
|
||||
bindsym $mod+Ctrl+l move workspace to output right
|
||||
bindsym $mod+Ctrl+h move workspace to output left
|
||||
bindsym $mod+Tab workspace next_on_output
|
||||
bindsym $mod+Shift+Tab workspace prev_on_output
|
||||
|
||||
# Launchers
|
||||
bindsym $mod+d exec --no-startup-id rofi -show drun
|
||||
bindsym $mod+F2 exec --no-startup-id rofi -show run
|
||||
# bindsym $mod+e exec --no-startup-id rofi -show filebrowser
|
||||
bindsym $mod+e exec --no-startup-id thunar
|
||||
bindsym $mod+Return exec --no-startup-id i3-sensible-terminal
|
||||
bindsym $mod+Shift+s exec --no-startup-id gnome-screenshot --interactive
|
||||
|
||||
# Scratchpad
|
||||
# Make the currently focused window a scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
# Show the first scratchpad window
|
||||
bindsym $mod+minus scratchpad show
|
||||
# mode "scratchpad" {
|
||||
# bindsym $mod+Tab scratchpad show; scratchpad show
|
||||
# bindsym Return floating toggle; mode "default"
|
||||
# bindsym Escape scratchpad show; mode "default"
|
||||
# bindsym $mod+Escape mode "default"
|
||||
# }
|
||||
|
||||
# bindsym $mod+Tab mode "scratchpad"; scratchpad show
|
||||
|
||||
# Custom theme
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #323437 #323437 #bdbdbd #949494 #949494
|
||||
#client.focused #9e9e9e #9e9e9e #080808 #323437 #323437
|
||||
client.focused_inactive #323437 #323437 #bdbdbd #323437 #323437
|
||||
client.unfocused #323437 #1c1c1c #9e9e9e #323437 #323437
|
||||
client.urgent #9d3b19 #9d3b19 #bdbdbd #9d3b19 #9d3b19
|
||||
client.placeholder #323437 #323437 #bdbdbd #323437 #323437
|
||||
|
||||
client.background #ffffff
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
|
||||
bar {
|
||||
# id primary-bar
|
||||
# output primary
|
||||
font pango:Noto Sans 11
|
||||
position top
|
||||
workspace_buttons yes
|
||||
# workspace_min_width 40px
|
||||
# height 40
|
||||
tray_output primary
|
||||
tray_padding 4
|
||||
separator_symbol " "
|
||||
status_command get-status
|
||||
colors {
|
||||
separator #d3d7cf
|
||||
background #080808
|
||||
statusline #e4e4e4
|
||||
focused_workspace #4c7899 #285577 #e4e4e4
|
||||
active_workspace #323437 #323437 #bdbdbd
|
||||
inactive_workspace #323437 #080808 #bdbdbd
|
||||
urgent_workspace #9d3b19 #9d3b19 #d3d7cf
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
general {
|
||||
output_format = "i3bar"
|
||||
colors = true
|
||||
interval = 5
|
||||
}
|
||||
|
||||
order += "disk /"
|
||||
order += "cpu_temperature 0"
|
||||
order += "cpu_usage"
|
||||
order += "memory"
|
||||
order += "battery 0"
|
||||
order += "time"
|
||||
order += "tztime chennai"
|
||||
order += "tztime stockholm"
|
||||
|
||||
disk "/" {
|
||||
format = "DISK: %used / %total"
|
||||
low_threshold = 20
|
||||
threshold_type = "gbytes_avail"
|
||||
}
|
||||
|
||||
cpu_temperature 0 {
|
||||
format = "CPU: %degrees °C"
|
||||
max_threshold = 75
|
||||
path = "/sys/devices/virtual/thermal/thermal_zone0/temp"
|
||||
#path = "hw.acpi.thermal.tz0.temperature"
|
||||
}
|
||||
|
||||
cpu_usage {
|
||||
format = "%usage"
|
||||
max_threshold = 95
|
||||
degraded_threshold = 90
|
||||
}
|
||||
|
||||
memory {
|
||||
format = "MEM: %used / %total"
|
||||
threshold_degraded = "2G"
|
||||
threshold_critical = "1G"
|
||||
}
|
||||
|
||||
battery 0 {
|
||||
format = "%status: %percentage"
|
||||
format_percentage = "%.00f%s"
|
||||
format_down = "No battery"
|
||||
path = "/sys/class/power_supply/BAT%d/uevent"
|
||||
low_threshold = 10
|
||||
threshold_type = "percentage"
|
||||
}
|
||||
|
||||
time {
|
||||
format = "%d-%m-%Y "
|
||||
}
|
||||
|
||||
tztime stockholm {
|
||||
format = "%H:%M %Z"
|
||||
timezone = "Europe/Stockholm"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,17 @@
|
||||
# set previewer ~/.config/lf/pv_sandbox.sh
|
||||
# map i $~/.config/lf/pv_sandbox.sh $f | less -R
|
||||
|
||||
set preview false
|
||||
set ratios 1
|
||||
set hidden true
|
||||
set info size:time
|
||||
set promptfmt "\033[34;1m%d\033[0m"
|
||||
set incsearch true
|
||||
set incfilter true
|
||||
set period 1
|
||||
|
||||
# map f filter
|
||||
# map j updir
|
||||
# map k down
|
||||
# map l up
|
||||
# map ; open
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
read -p "Path: " path
|
||||
|
||||
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
case "$1" in
|
||||
*.tar*) tar tf "$1";;
|
||||
*.zip) unzip -l "$1";;
|
||||
*.rar) unrar l "$1";;
|
||||
*.7z) 7z l "$1";;
|
||||
*.pdf) pdftotext "$1" -;;
|
||||
*) highlight -O ansi "$1";;
|
||||
esac
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -euo pipefail
|
||||
(
|
||||
exec bwrap \
|
||||
--ro-bind /usr/bin /usr/bin \
|
||||
--ro-bind /usr/share/ /usr/share/ \
|
||||
--ro-bind /usr/lib /usr/lib \
|
||||
--ro-bind /usr/lib64 /usr/lib64 \
|
||||
--symlink /usr/bin /bin \
|
||||
--symlink /usr/bin /sbin \
|
||||
--symlink /usr/lib /lib \
|
||||
--symlink /usr/lib64 /lib64 \
|
||||
--proc /proc \
|
||||
--dev /dev \
|
||||
--ro-bind /etc /etc \
|
||||
--ro-bind ~/.config ~/.config \
|
||||
--ro-bind ~/.cache ~/.cache \
|
||||
--ro-bind "$PWD" "$PWD" \
|
||||
--unshare-all \
|
||||
--new-session \
|
||||
sh ~/.config/lf/pv.sh "$@"
|
||||
)
|
||||
@@ -0,0 +1,425 @@
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||
# shadow-color = "#000000"
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||
# clip-shadow-above = []
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular monitor to that monitor. This is
|
||||
# currently implemented using the X RandR extension.
|
||||
# crop-shadow-to-monitor = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should never be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
|
||||
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
|
||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||
# round the corners of windows. Does not interact well with
|
||||
# `transparent-clipping`.
|
||||
corner-radius = 0
|
||||
|
||||
# Exclude conditions for rounded corners.
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
#
|
||||
# blur-strength = 5
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ""
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Enable remote control via D-Bus. See the man page for more details.
|
||||
# dbus = true
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
backend = "egl";
|
||||
|
||||
# Use higher precision during rendering, and apply dither when presenting the
|
||||
# rendered screen. Reduces banding artifacts, but might cause performance
|
||||
# degradation. Only works with OpenGL.
|
||||
dithered-present = false;
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true;
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true;
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. This usually means windows from the same application
|
||||
# will be considered focused or unfocused at the same time.
|
||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
glx-no-stencil = true;
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn every time, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true;
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window
|
||||
# contents. Read the man page for a detailed explanation of the interface.
|
||||
#
|
||||
# window-shader-fg = "default"
|
||||
|
||||
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
|
||||
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
|
||||
#
|
||||
# window-shader-fg-rule = [
|
||||
# "my_shader.frag:window_type != 'dock'"
|
||||
# ]
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Specify a list of conditions of windows that should never have transparent
|
||||
# clipping applied. Useful for screenshot tools, where you need to be able to
|
||||
# see through transparent parts of the window.
|
||||
#
|
||||
# transparent-clipping-exclude = []
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = "/path/to/your/log/file"
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = "/path/to/your/log/file"
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# clip-shadow-above:::
|
||||
# Controls whether shadows that would have been drawn above the window should
|
||||
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = false; shadow = false; opacity = 1.0; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 1.0; }
|
||||
dropdown_menu = { opacity = 1.0; }
|
||||
};
|
||||
@@ -0,0 +1,154 @@
|
||||
configuration {
|
||||
modes: "drun,run,filebrowser";
|
||||
font: "Noto Sans 12";
|
||||
/* location: 0;*/
|
||||
/* yoffset: 0;*/
|
||||
/* xoffset: 0;*/
|
||||
/* fixed-num-lines: true;*/
|
||||
show-icons: true;
|
||||
/* terminal: "rofi-sensible-terminal";*/
|
||||
/* ssh-client: "ssh";*/
|
||||
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||
/* run-command: "{cmd}";*/
|
||||
/* run-list-command: "";*/
|
||||
run-shell-command: "{terminal} -e zsh -ic '{cmd} && read'";
|
||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||
/* window-command: "wmctrl -i -R {window}";*/
|
||||
/* window-match-fields: "all";*/
|
||||
/* icon-theme: ;*/
|
||||
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||
/* drun-categories: ;*/
|
||||
/* drun-show-actions: false;*/
|
||||
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
||||
/* drun-url-launcher: "xdg-open";*/
|
||||
/* disable-history: false;*/
|
||||
/* ignored-prefixes: "";*/
|
||||
/* sort: false;*/
|
||||
/* sorting-method: "normal";*/
|
||||
/* case-sensitive: false;*/
|
||||
/* cycle: true;*/
|
||||
/* sidebar-mode: false;*/
|
||||
/* hover-select: false;*/
|
||||
/* eh: 1;*/
|
||||
/* auto-select: false;*/
|
||||
/* parse-hosts: false;*/
|
||||
/* parse-known-hosts: true;*/
|
||||
/* combi-modes: "window,run";*/
|
||||
/* matching: "normal";*/
|
||||
/* tokenize: true;*/
|
||||
/* m: "-5";*/
|
||||
/* filter: ;*/
|
||||
/* dpi: -1;*/
|
||||
/* threads: 0;*/
|
||||
scroll-method: 1;
|
||||
/* window-format: "{w} {c} {t}";*/
|
||||
/* click-to-exit: true;*/
|
||||
/* max-history-size: 25;*/
|
||||
/* combi-hide-mode-prefix: false;*/
|
||||
/* combi-display-format: "{mode} {text}";*/
|
||||
/* matching-negate-char: '-' /* unsupported */;*/
|
||||
/* cache-dir: ;*/
|
||||
/* window-thumbnail: false;*/
|
||||
/* drun-use-desktop-cache: false;*/
|
||||
/* drun-reload-desktop-cache: false;*/
|
||||
/* normalize-match: false;*/
|
||||
/* steal-focus: false;*/
|
||||
/* application-fallback-icon: ;*/
|
||||
/* refilter-timeout-limit: 8192;*/
|
||||
/* xserver-i300-workaround: false;*/
|
||||
/* pid: "/run/user/1000/rofi.pid";*/
|
||||
/* display-window: ;*/
|
||||
/* display-windowcd: ;*/
|
||||
/* display-run: ;*/
|
||||
/* display-ssh: ;*/
|
||||
/* display-drun: ;*/
|
||||
/* display-combi: ;*/
|
||||
/* display-keys: ;*/
|
||||
/* display-filebrowser: ;*/
|
||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||
/* kb-clear-line: "Control+w";*/
|
||||
/* kb-move-front: "Control+a";*/
|
||||
/* kb-move-end: "Control+e";*/
|
||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||
/* kb-move-char-back: "Left,Control+b";*/
|
||||
/* kb-move-char-forward: "Right,Control+f";*/
|
||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||
/* kb-remove-to-eol: "Control+k";*/
|
||||
/* kb-remove-to-sol: "Control+u";*/
|
||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||
/* kb-accept-custom: "Control+Return";*/
|
||||
/* kb-accept-custom-alt: "Control+Shift+Return";*/
|
||||
/* kb-accept-alt: "Shift+Return";*/
|
||||
/* kb-delete-entry: "Shift+Delete";*/
|
||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||
/* kb-mode-complete: "Control+l";*/
|
||||
/* kb-row-left: "Control+Page_Up";*/
|
||||
/* kb-row-right: "Control+Page_Down";*/
|
||||
/* kb-row-up: "Up,Control+p";*/
|
||||
/* kb-row-down: "Down,Control+n";*/
|
||||
/* kb-row-tab: "";*/
|
||||
/* kb-element-next: "Tab";*/
|
||||
/* kb-element-prev: "ISO_Left_Tab";*/
|
||||
/* kb-page-prev: "Page_Up";*/
|
||||
/* kb-page-next: "Page_Down";*/
|
||||
/* kb-row-first: "Home,KP_Home";*/
|
||||
/* kb-row-last: "End,KP_End";*/
|
||||
/* kb-row-select: "Control+space";*/
|
||||
/* kb-screenshot: "Alt+S";*/
|
||||
/* kb-ellipsize: "Alt+period";*/
|
||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||
/* kb-toggle-sort: "Alt+grave";*/
|
||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||
/* kb-custom-1: "Alt+1";*/
|
||||
/* kb-custom-2: "Alt+2";*/
|
||||
/* kb-custom-3: "Alt+3";*/
|
||||
/* kb-custom-4: "Alt+4";*/
|
||||
/* kb-custom-5: "Alt+5";*/
|
||||
/* kb-custom-6: "Alt+6";*/
|
||||
/* kb-custom-7: "Alt+7";*/
|
||||
/* kb-custom-8: "Alt+8";*/
|
||||
/* kb-custom-9: "Alt+9";*/
|
||||
/* kb-custom-10: "Alt+0";*/
|
||||
/* kb-custom-11: "Alt+exclam";*/
|
||||
/* kb-custom-12: "Alt+at";*/
|
||||
/* kb-custom-13: "Alt+numbersign";*/
|
||||
/* kb-custom-14: "Alt+dollar";*/
|
||||
/* kb-custom-15: "Alt+percent";*/
|
||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||
/* kb-custom-17: "Alt+ampersand";*/
|
||||
/* kb-custom-18: "Alt+asterisk";*/
|
||||
/* kb-custom-19: "Alt+parenleft";*/
|
||||
/* kb-select-1: "Super+1";*/
|
||||
/* kb-select-2: "Super+2";*/
|
||||
/* kb-select-3: "Super+3";*/
|
||||
/* kb-select-4: "Super+4";*/
|
||||
/* kb-select-5: "Super+5";*/
|
||||
/* kb-select-6: "Super+6";*/
|
||||
/* kb-select-7: "Super+7";*/
|
||||
/* kb-select-8: "Super+8";*/
|
||||
/* kb-select-9: "Super+9";*/
|
||||
/* kb-select-10: "Super+0";*/
|
||||
/* ml-row-left: "ScrollLeft";*/
|
||||
/* ml-row-right: "ScrollRight";*/
|
||||
/* ml-row-up: "ScrollUp";*/
|
||||
/* ml-row-down: "ScrollDown";*/
|
||||
/* me-select-entry: "MousePrimary";*/
|
||||
/* me-accept-entry: "MouseDPrimary";*/
|
||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||
timeout {
|
||||
action: "kb-cancel";
|
||||
delay: 0;
|
||||
}
|
||||
filebrowser {
|
||||
directory: "/home/oscar";
|
||||
directories-first: true;
|
||||
sorting-method: "mtime";
|
||||
}
|
||||
}
|
||||
@theme "rounded-blue-dark.rasi"
|
||||
@@ -0,0 +1,18 @@
|
||||
/*******************************************************************************
|
||||
* ROUNDED THEME FOR ROFI
|
||||
* User : LR-Tech
|
||||
* Theme Repo : https://github.com/lr-tech/rofi-themes-collection
|
||||
*******************************************************************************/
|
||||
|
||||
* {
|
||||
bg0: #212121F2;
|
||||
bg1: #2A2A2A;
|
||||
bg2: #3D3D3D80;
|
||||
bg3: #1A73E8F2;
|
||||
fg0: #E6E6E6;
|
||||
fg1: #FFFFFF;
|
||||
fg2: #969696;
|
||||
fg3: #3D3D3D;
|
||||
}
|
||||
|
||||
@import "rounded-common.rasi"
|
||||
@@ -0,0 +1,93 @@
|
||||
/*******************************************************************************
|
||||
* ROUNDED THEME FOR ROFI
|
||||
* User : LR-Tech
|
||||
* Theme Repo : https://github.com/lr-tech/rofi-themes-collection
|
||||
*******************************************************************************/
|
||||
|
||||
* {
|
||||
font: "Roboto 12";
|
||||
|
||||
background-color: transparent;
|
||||
text-color: @fg0;
|
||||
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
spacing: 0px;
|
||||
}
|
||||
|
||||
window {
|
||||
location: center;
|
||||
width: 480;
|
||||
border-radius: 24px;
|
||||
|
||||
background-color: @bg0;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
background-color: @bg1;
|
||||
border-color: @bg3;
|
||||
|
||||
border: 2px;
|
||||
border-radius: 16px;
|
||||
|
||||
padding: 8px 16px;
|
||||
spacing: 8px;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-color: @fg2;
|
||||
}
|
||||
|
||||
entry {
|
||||
placeholder: "Search";
|
||||
placeholder-color: @fg3;
|
||||
}
|
||||
|
||||
message {
|
||||
margin: 12px 0 0;
|
||||
border-radius: 16px;
|
||||
border-color: @bg2;
|
||||
background-color: @bg2;
|
||||
}
|
||||
|
||||
textbox {
|
||||
padding: 8px 24px;
|
||||
}
|
||||
|
||||
listview {
|
||||
background-color: transparent;
|
||||
|
||||
margin: 12px 0 0;
|
||||
lines: 8;
|
||||
columns: 1;
|
||||
|
||||
fixed-height: false;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 8px 16px;
|
||||
spacing: 8px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
element normal active {
|
||||
text-color: @bg3;
|
||||
}
|
||||
|
||||
element selected normal, element selected active {
|
||||
background-color: @bg3;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 1em;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-text {
|
||||
text-color: inherit;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
/*******************************************************************************
|
||||
* ROUNDED THEME FOR ROFI
|
||||
* User : LR-Tech
|
||||
* Theme Repo : https://github.com/lr-tech/rofi-themes-collection
|
||||
*******************************************************************************/
|
||||
|
||||
* {
|
||||
bg0: #212121F2;
|
||||
bg1: #2A2A2A;
|
||||
bg2: #3D3D3D80;
|
||||
bg3: #616161F2;
|
||||
fg0: #E6E6E6;
|
||||
fg1: #FFFFFF;
|
||||
fg2: #969696;
|
||||
fg3: #3D3D3D;
|
||||
}
|
||||
|
||||
@import "rounded-common.rasi"
|
||||
@@ -0,0 +1 @@
|
||||
plugins/
|
||||
@@ -0,0 +1,195 @@
|
||||
# `set` is alias for `set-option`
|
||||
# `set -g` for global window/session (window or session is inferred if not -w or -s is specified)
|
||||
# `set -a` to append
|
||||
|
||||
# Use tmux* TERM over xterm* for better tmux compatibility
|
||||
set -g default-terminal "tmux-256color"
|
||||
|
||||
################
|
||||
### Features ###
|
||||
################
|
||||
## Ref: http://man.openbsd.org/OpenBSD-current/man1/tmux.1#terminal-features__
|
||||
# Supports 256 colours with the SGR escape sequences.
|
||||
set -ag terminal-features ",*:256"
|
||||
# Allows setting the system clipboard.
|
||||
set -ag terminal-features ",*:clipboard"
|
||||
# Allows setting the cursor colour.
|
||||
set -ag terminal-features ",*:ccolour"
|
||||
# Allows setting the cursor style.
|
||||
set -ag terminal-features ",*:cstyle"
|
||||
# Supports focus reporting.
|
||||
set -ag terminal-features ",*:focus"
|
||||
# Supports OSC 8 hyperlinks.
|
||||
set -ag terminal-features ",*:hyperlinks"
|
||||
# Supports xterm(1) mouse sequences.
|
||||
set -ag terminal-features ",*:mouse"
|
||||
# Supports the overline SGR attribute.
|
||||
set -ag terminal-features ",*:overline"
|
||||
# Supports the DECFRA rectangle fill escape sequence.
|
||||
set -ag terminal-features ",*:rectfill"
|
||||
# Supports RGB colour with the SGR escape sequences.
|
||||
set -ag terminal-features ",*:RGB"
|
||||
# Supports the strikethrough SGR escape sequence.
|
||||
set -ag terminal-features ",*:strikethrough"
|
||||
# Supports xterm(1) title setting.
|
||||
set -ag terminal-features ",*:title"
|
||||
# Allows underscore style and colour to be set.
|
||||
set -ag terminal-features ",*:usstyle"
|
||||
|
||||
#################
|
||||
### Overrides ###
|
||||
#################
|
||||
# Undercurl color support
|
||||
set -ag terminal-overrides ',*:Smulx=\E[4::%p1%dm'
|
||||
# Underline / Underscore color support
|
||||
set -ag terminal-overrides ',*:Setulc=\E[58::2::::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
|
||||
|
||||
#############
|
||||
### Title ###
|
||||
#############
|
||||
set -g set-titles on
|
||||
set -g set-titles-string "#T"
|
||||
|
||||
##############
|
||||
### Status ###
|
||||
##############
|
||||
set -g status on
|
||||
set -g status-bg default
|
||||
set -g status-fg white
|
||||
set -g status-style bg=default
|
||||
set -g status-position bottom
|
||||
set -g status-right "#H #(\
|
||||
$TMUX_PLUGIN_MANAGER_PATH/tmux-mem-cpu-load/tmux-mem-cpu-load \
|
||||
--interval 1 \
|
||||
--graph-lines 0 \
|
||||
--mem-mode 1 \
|
||||
--averages-count 0 \
|
||||
) %H:%M %d-%m-%Y"
|
||||
set -g status-right-length 120
|
||||
set -g window-status-format '#I:#T#F'
|
||||
# Fix initial title being the hostname for a split second, see:
|
||||
# https://man7.org/linux/man-pages/man1/tmux.1.html#NAMES_AND_TITLES
|
||||
set -g window-status-current-format '#I:#{s/^#{host}$/~/:pane_title}#F'
|
||||
|
||||
############
|
||||
### Misc ###
|
||||
############
|
||||
set -g update-environment 'DISPLAY TERM XAUTHORITY WINDOWID'
|
||||
set -g default-command 'zsh'
|
||||
setw -g pane-border-style 'fg=black'
|
||||
setw -g pane-active-border-style 'fg=black'
|
||||
set -g mouse on
|
||||
set -g message-command-style bg=black,fg=white
|
||||
set -g message-style bg=black,fg=white
|
||||
set -g repeat-time 1000
|
||||
set -g mode-keys vi
|
||||
set -g status-interval 1
|
||||
set -g set-clipboard on
|
||||
|
||||
################
|
||||
### Bindings ###
|
||||
################
|
||||
# Default bindings
|
||||
# bind-key C-b send-prefix
|
||||
# bind-key C-o rotate-window
|
||||
# bind-key C-z suspend-client
|
||||
# bind-key Space next-layout
|
||||
# bind-key ! break-pane
|
||||
# bind-key " split-window
|
||||
# bind-key # list-buffers
|
||||
# bind-key $ command-prompt -I #S "rename-session '%%'"
|
||||
# bind-key % split-window -h
|
||||
# bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
|
||||
# bind-key ' command-prompt -p index "select-window -t ':%%'"
|
||||
# bind-key ( switch-client -p
|
||||
# bind-key ) switch-client -n
|
||||
# bind-key , command-prompt -I #W "rename-window '%%'"
|
||||
# bind-key - delete-buffer
|
||||
# bind-key . command-prompt "move-window -t '%%'"
|
||||
# bind-key 0 select-window -t :0
|
||||
# bind-key 1 select-window -t :1
|
||||
# bind-key 2 select-window -t :2
|
||||
# bind-key 3 select-window -t :3
|
||||
# bind-key 4 select-window -t :4
|
||||
# bind-key 5 select-window -t :5
|
||||
# bind-key 6 select-window -t :6
|
||||
# bind-key 7 select-window -t :7
|
||||
# bind-key 8 select-window -t :8
|
||||
# bind-key 9 select-window -t :9
|
||||
# bind-key : command-prompt
|
||||
# bind-key ; last-pane
|
||||
# bind-key = choose-buffer
|
||||
# bind-key ? list-keys
|
||||
# bind-key D choose-client
|
||||
# bind-key L switch-client -l
|
||||
# bind-key [ copy-mode
|
||||
# bind-key ] paste-buffer
|
||||
# bind-key c new-window
|
||||
# bind-key d detach-client
|
||||
# bind-key f command-prompt "find-window '%%'"
|
||||
# bind-key i display-message
|
||||
# bind-key l last-window
|
||||
# bind-key n next-window
|
||||
# bind-key o select-pane -t :.+
|
||||
# bind-key p previous-window
|
||||
# bind-key q display-panes
|
||||
# bind-key s choose-tree
|
||||
# bind-key t clock-mode
|
||||
# bind-key w choose-window
|
||||
# bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
||||
# bind-key z resize-pane -Z
|
||||
# bind-key { swap-pane -U
|
||||
# bind-key } swap-pane -D
|
||||
# bind-key ~ show-messages
|
||||
# bind-key PPage copy-mode -u
|
||||
# bind-key -r Up select-pane -U
|
||||
# bind-key -r Down select-pane -D
|
||||
# bind-key -r Left select-pane -L
|
||||
# bind-key -r Right select-pane -R
|
||||
# bind-key M-1 select-layout even-horizontal
|
||||
# bind-key M-2 select-layout even-vertical
|
||||
# bind-key M-3 select-layout main-horizontal
|
||||
# bind-key M-4 select-layout main-vertical
|
||||
# bind-key M-5 select-layout tiled
|
||||
# bind-key M-n next-window -a
|
||||
# bind-key M-o rotate-window -D
|
||||
# bind-key M-p previous-window -a
|
||||
# bind-key -r M-Up resize-pane -U 5
|
||||
# bind-key -r M-Down resize-pane -D 5
|
||||
# bind-key -r M-Left resize-pane -L 5
|
||||
# bind-key -r M-Right resize-pane -R 5
|
||||
# bind-key -r C-Up resize-pane -U
|
||||
# bind-key -r C-Down resize-pane -D
|
||||
# bind-key -r C-Left resize-pane -L
|
||||
# bind-key -r C-Right resize-pane -R
|
||||
|
||||
# Custom
|
||||
# -r == repeatable
|
||||
# -n == no prefix
|
||||
|
||||
# Reload config
|
||||
bind-key r source-file ~/.config/tmux/tmux.conf \; display-message "~/.config/tmux/tmux.conf reloaded"
|
||||
|
||||
# Use Ctrl to select
|
||||
unbind -T root MouseDrag1Pane
|
||||
unbind -T copy-mode-vi MouseDrag1Pane
|
||||
bind-key -T root C-MouseDrag1Pane if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -M }
|
||||
bind-key -T copy-mode-vi C-MouseDrag1Pane select-pane \; send-keys -X begin-selection
|
||||
|
||||
# Don't stop copy mode after selecting
|
||||
unbind -T copy-mode-vi MouseDragEnd1Pane
|
||||
|
||||
# More vim-like selection
|
||||
bind-key -T copy-mode-vi 'v' send -X begin-selection # Begin selection in copy mode.
|
||||
bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle # Begin selection in copy mode.
|
||||
bind-key -T copy-mode-vi 'y' send -X copy-selection # Yank selection in copy mode.
|
||||
|
||||
# Plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'thewtex/tmux-mem-cpu-load'
|
||||
|
||||
if "test ! -d ~/.config/tmux/plugins/tpm" \
|
||||
"run 'git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm && ~/.config/tmux/plugins/tpm/bin/install_plugins'"
|
||||
|
||||
run '~/.config/tmux/plugins/tpm/tpm'
|
||||
@@ -0,0 +1,112 @@
|
||||
local wezterm = require 'wezterm'
|
||||
local act = wezterm.action
|
||||
|
||||
local M = {}
|
||||
|
||||
M.keys = {
|
||||
{ key = 'Enter', mods = 'ALT', action = act.ToggleFullScreen },
|
||||
{ key = '=', mods = 'CTRL', action = act.IncreaseFontSize },
|
||||
{ key = '-', mods = 'CTRL', action = act.DecreaseFontSize },
|
||||
{ key = '0', mods = 'CTRL', action = act.ResetFontSize },
|
||||
{ key = 'C', mods = 'SHIFT|CTRL', action = act.CopyTo("Clipboard") },
|
||||
{ key = 'V', mods = 'SHIFT|CTRL', action = act.PasteFrom("Clipboard") },
|
||||
{ key = 'P', mods = 'SHIFT|CTRL', action = act.ActivateCommandPalette },
|
||||
{ key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
|
||||
{ key = 'F12', mods = 'NONE', action = act.ShowDebugOverlay },
|
||||
}
|
||||
|
||||
M.mouse_bindings = {
|
||||
-- Open links
|
||||
{
|
||||
event = { Up = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL',
|
||||
action = act.OpenLinkAtMouseCursor,
|
||||
},
|
||||
|
||||
-- Select text
|
||||
{
|
||||
event = { Down = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL',
|
||||
action = act.SelectTextAtMouseCursor("Cell"),
|
||||
},
|
||||
{
|
||||
event = { Drag = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL',
|
||||
action = act.ExtendSelectionToMouseCursor("Cell"),
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL|SHIFT',
|
||||
action = act.ExtendSelectionToMouseCursor("Cell"),
|
||||
},
|
||||
|
||||
-- Select text in block mode
|
||||
{
|
||||
event = { Down = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL|ALT',
|
||||
action = act.SelectTextAtMouseCursor("Block"),
|
||||
},
|
||||
{
|
||||
event = { Drag = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL|ALT',
|
||||
action = act.ExtendSelectionToMouseCursor("Block"),
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = 'Left' } },
|
||||
mods = 'CTRL|ALT|SHIFT',
|
||||
action = act.ExtendSelectionToMouseCursor("Block"),
|
||||
},
|
||||
}
|
||||
|
||||
M.key_tables = wezterm.gui.default_key_tables()
|
||||
|
||||
-- table.insert(M.key_tables.copy_mode, {
|
||||
-- key = 'y',
|
||||
-- mods = 'NONE',
|
||||
-- action = act.Multiple({
|
||||
-- act.CopyTo("Clipboard"),
|
||||
-- act.CopyMode("ClearSelectionMode"),
|
||||
-- })
|
||||
-- })
|
||||
|
||||
function M.enable_multiplexing()
|
||||
table.insert(M.keys, { key = "c", mods = "LEADER", action = act.SpawnTab("CurrentPaneDomain") })
|
||||
table.insert(M.keys, { key = '%', mods = "LEADER|SHIFT", action = act.SplitPane({ direction = "Down" }) })
|
||||
table.insert(M.keys, { key = '"', mods = "LEADER|SHIFT", action = act.SplitPane({ direction = "Right" }) })
|
||||
table.insert(M.keys, { key = "x", mods = "LEADER", action = act.CloseCurrentPane({ confirm = true }) })
|
||||
table.insert(M.keys, { key = "n", mods = "LEADER", action = act.ActivateTabRelative(1) })
|
||||
table.insert(M.keys, { key = "p", mods = "LEADER", action = act.ActivateTabRelative(-1) })
|
||||
table.insert(M.keys, { key = "h", mods = "LEADER", action = act.ActivatePaneDirection('Left') })
|
||||
table.insert(M.keys, { key = "l", mods = "LEADER", action = act.ActivatePaneDirection('Right') })
|
||||
table.insert(M.keys, { key = "k", mods = "LEADER", action = act.ActivatePaneDirection('Up') })
|
||||
table.insert(M.keys, { key = "j", mods = "LEADER", action = act.ActivatePaneDirection('Down') })
|
||||
table.insert(M.keys, { key = "[", mods = "LEADER", action = act.ActivateCopyMode })
|
||||
table.insert(M.keys, { key = '?', mods = 'LEADER|SHIFT', action = act.Search("CurrentSelectionOrEmptyString") })
|
||||
|
||||
for i = 1, 9 do
|
||||
table.insert(M.keys, { key = tostring(i), mods = "LEADER", action = act.ActivateTab(i - 1) })
|
||||
end
|
||||
|
||||
table.insert(M.mouse_bindings, {
|
||||
event = { Down = { streak = 1, button = { WheelUp = 1 } } },
|
||||
mods = 'NONE',
|
||||
action = act.ScrollByLine(-3)
|
||||
})
|
||||
table.insert(M.mouse_bindings, {
|
||||
event = { Down = { streak = 1, button = { WheelDown = 1 } } },
|
||||
mods = 'NONE',
|
||||
action = act.ScrollByLine(3)
|
||||
})
|
||||
table.insert(M.mouse_bindings, {
|
||||
event = { Down = { streak = 1, button = { WheelUp = 1 } } },
|
||||
mods = 'ALT',
|
||||
action = act.ScrollByPage(-1)
|
||||
})
|
||||
table.insert(M.mouse_bindings, {
|
||||
event = { Down = { streak = 1, button = { WheelDown = 1 } } },
|
||||
mods = 'ALT',
|
||||
action = act.ScrollByPage(1)
|
||||
})
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,75 @@
|
||||
local my_colors = {
|
||||
foreground = '#b2b2b2',
|
||||
background = '#000000',
|
||||
cursor_fg = '#000000',
|
||||
cursor_bg = '#b2b2b2',
|
||||
cursor_border = '#b2b2b2',
|
||||
selection_fg = '#000000',
|
||||
selection_bg = '#b2b2b2',
|
||||
scrollbar_thumb = '#000000',
|
||||
split = '#000000',
|
||||
ansi = {
|
||||
'#2e3436', -- black
|
||||
'#cc5555', -- red
|
||||
'#4e9a06', -- green
|
||||
'#c4a000', -- yellow
|
||||
'#6465a4', -- blue
|
||||
'#75507b', -- magenta
|
||||
'#06989a', -- cyan
|
||||
'#b2b2b2', -- white
|
||||
},
|
||||
brights = {
|
||||
'#555753', -- black
|
||||
'#ff5555', -- red
|
||||
'#8ae234', -- green
|
||||
'#fce94f', -- yellow
|
||||
'#739fcf', -- blue
|
||||
'#ad7fa8', -- magenta
|
||||
'#34e2e2', -- cyan
|
||||
'#d3d7cf', -- white
|
||||
},
|
||||
compose_cursor = 'orange',
|
||||
tab_bar = {
|
||||
-- The color of the strip that goes along the top of the window
|
||||
-- (does not apply when fancy tab bar is in use)
|
||||
background = '#000000',
|
||||
|
||||
-- The active tab is the one that has focus in the window
|
||||
active_tab = {
|
||||
-- The color of the background area for the tab
|
||||
bg_color = '#000000',
|
||||
-- The color of the text for the tab
|
||||
fg_color = '#c0c0c0',
|
||||
},
|
||||
|
||||
-- Inactive tabs are the tabs that do not have focus
|
||||
inactive_tab = {
|
||||
bg_color = '#000000',
|
||||
fg_color = '#808080',
|
||||
},
|
||||
|
||||
-- You can configure some alternate styling when the mouse pointer
|
||||
-- moves over inactive tabs
|
||||
inactive_tab_hover = {
|
||||
bg_color = '#000000',
|
||||
fg_color = '#c0c0c0',
|
||||
|
||||
-- The same options that were listed under the `active_tab` section above
|
||||
-- can also be used for `inactive_tab_hover`.
|
||||
},
|
||||
|
||||
|
||||
-- The new tab button that let you create new tabs
|
||||
new_tab = {
|
||||
bg_color = '#000000',
|
||||
fg_color = '#808080',
|
||||
},
|
||||
|
||||
new_tab_hover = {
|
||||
bg_color = '#000000',
|
||||
fg_color = '#c0c0c0',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return my_colors
|
||||
@@ -0,0 +1,38 @@
|
||||
[metadata]
|
||||
name = "moonfly"
|
||||
origin_url = "https://github.com/bluz71/vim-moonfly-colors"
|
||||
|
||||
[colors]
|
||||
background = "#080808"
|
||||
foreground = "#bdbdbd"
|
||||
cursor_bg = "#9e9e9e"
|
||||
cursor_fg = "#080808"
|
||||
cursor_border = "#9e9e9e"
|
||||
selection_bg = "#b2ceee"
|
||||
selection_fg = "#080808"
|
||||
scrollbar_thumb = "#9e9e9e"
|
||||
split = "#9e9e9e"
|
||||
|
||||
ansi = [
|
||||
"#323437",
|
||||
"#ff5454",
|
||||
"#8cc85f",
|
||||
"#e3c78a",
|
||||
"#80a0ff",
|
||||
"#cf87e8",
|
||||
"#79dac8",
|
||||
"#c6c6c6",
|
||||
]
|
||||
brights = [
|
||||
"#949494",
|
||||
"#ff5189",
|
||||
"#36c692",
|
||||
"#c2c292",
|
||||
"#74b2ff",
|
||||
"#ae81ff",
|
||||
"#85dc85",
|
||||
"#e4e4e4",
|
||||
]
|
||||
|
||||
compose_cursor = "#e3c78a"
|
||||
visual_bell = "#e3c78a"
|
||||
@@ -0,0 +1,26 @@
|
||||
local wezterm = require("wezterm")
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.setup()
|
||||
wezterm.on(
|
||||
'format-tab-title',
|
||||
function(tab, _, _, _, _, _)
|
||||
local title = tab.tab_title
|
||||
if not title or #title <= 0 then
|
||||
title = tab.active_pane.title
|
||||
end
|
||||
title = " " .. tab.tab_index + 1 .. ": " .. title
|
||||
if tab.is_active then
|
||||
title = title .. "*"
|
||||
else
|
||||
title = title .. " "
|
||||
end
|
||||
return {
|
||||
{ Text = title },
|
||||
}
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,53 @@
|
||||
local wezterm = require("wezterm")
|
||||
|
||||
local fonts = {}
|
||||
|
||||
local family = "Iosevka Custom"
|
||||
|
||||
-- Automatically includes fallback for nerd font symbols,
|
||||
-- so it doesn't require a patched font.
|
||||
fonts.regular = wezterm.font({
|
||||
family = family,
|
||||
weight = "Regular",
|
||||
stretch = "Normal",
|
||||
style = "Normal"
|
||||
})
|
||||
fonts.italic = wezterm.font({
|
||||
family = family,
|
||||
weight = "Regular",
|
||||
stretch = "Normal",
|
||||
style = "Italic"
|
||||
})
|
||||
fonts.bold = wezterm.font({
|
||||
family = family,
|
||||
weight = "Bold",
|
||||
stretch = "Normal",
|
||||
style = "Normal"
|
||||
})
|
||||
fonts.bolditalic = wezterm.font({
|
||||
family = family,
|
||||
weight = "Bold",
|
||||
stretch = "Normal",
|
||||
style = "Italic"
|
||||
})
|
||||
|
||||
fonts.rules = {
|
||||
italic = {
|
||||
intensity = "Normal",
|
||||
italic = true,
|
||||
font = fonts.italic
|
||||
},
|
||||
bold = {
|
||||
intensity = "Bold",
|
||||
italic = false,
|
||||
font = fonts.bold
|
||||
},
|
||||
bolditalic = {
|
||||
intensity = "Bold",
|
||||
italic = true,
|
||||
font = fonts.bolditalic
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
return fonts
|
||||
@@ -0,0 +1,72 @@
|
||||
local wezterm = require("wezterm")
|
||||
|
||||
local config = wezterm.config_builder()
|
||||
|
||||
local ENABLE_MULTIPLEXING = false
|
||||
|
||||
-- quickstart: https://wezfurlong.org/wezterm/config/files.html
|
||||
-- spec: https://wezfurlong.org/wezterm/config/lua/general.html
|
||||
|
||||
-- General settings
|
||||
|
||||
config.window_padding = {
|
||||
left = 6,
|
||||
right = 6,
|
||||
top = 6,
|
||||
bottom = 6,
|
||||
}
|
||||
config.audible_bell = "Disabled"
|
||||
-- Settings below get overriden if multiplexing is enabled
|
||||
config.window_decorations = "TITLE|RESIZE"
|
||||
config.enable_tab_bar = false
|
||||
config.enable_scroll_bar = false
|
||||
config.check_for_updates = false
|
||||
|
||||
if string.find(wezterm.target_triple, "windows") then
|
||||
-- config.default_prog = { "wsl", "--cd", "~" }
|
||||
config.default_prog = { "pwsh" }
|
||||
else
|
||||
config.default_prog = { "zsh" }
|
||||
end
|
||||
|
||||
|
||||
-- Colors
|
||||
|
||||
config.color_scheme = "moonfly"
|
||||
|
||||
-- Fonts
|
||||
|
||||
local fonts = require("fonts")
|
||||
|
||||
config.font = fonts.regular
|
||||
config.font_size = 11
|
||||
config.font_rules = {
|
||||
fonts.rules.italic,
|
||||
fonts.rules.bold,
|
||||
fonts.rules.bolditalic,
|
||||
}
|
||||
config.harfbuzz_features = { 'calt=0' }
|
||||
|
||||
-- Keybinding
|
||||
|
||||
local bindings = require("bindings")
|
||||
|
||||
if ENABLE_MULTIPLEXING then
|
||||
config.window_decorations = "INTEGRATED_BUTTONS|RESIZE"
|
||||
config.enable_tab_bar = true
|
||||
config.enable_scroll_bar = true
|
||||
config.use_fancy_tab_bar = false
|
||||
config.show_new_tab_button_in_tab_bar = false
|
||||
config.leader = { key = "b", mods = "CTRL", timeout_milliseconds = 1000 }
|
||||
bindings.enable_multiplexing()
|
||||
end
|
||||
|
||||
config.disable_default_key_bindings = true
|
||||
config.keys = bindings.keys
|
||||
config.key_tables = bindings.key_tables
|
||||
config.disable_default_mouse_bindings = true
|
||||
config.mouse_bindings = bindings.mouse_bindings
|
||||
|
||||
require("events").setup()
|
||||
|
||||
return config
|
||||
@@ -0,0 +1,4 @@
|
||||
gtk-icon-theme-name = "Adwaita"
|
||||
gtk-theme-name = "AdwaitaDark"
|
||||
gtk-font-name = "Noto Sans 11"
|
||||
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
pactl \
|
||||
-f json \
|
||||
list sinks \
|
||||
| jq -r ".[] \
|
||||
| select(.name == \"$(pactl get-default-sink)\") \
|
||||
| .description \
|
||||
"
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
pactl \
|
||||
-f json \
|
||||
list sources \
|
||||
| jq -r ".[] \
|
||||
| select(.name == \"$(pactl get-default-source)\") \
|
||||
| .properties \
|
||||
| .[\"device.nick\"]" \
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
JSON=""
|
||||
|
||||
add_volume() {
|
||||
# name=$(get-sink-name)
|
||||
mute=$(pactl get-sink-mute @DEFAULT_SINK@)
|
||||
volume=$( \
|
||||
pactl get-sink-volume @DEFAULT_SINK@ \
|
||||
| grep -Eo '[0-9]+%' \
|
||||
| cut -d% -f1 \
|
||||
| head -n 1 \
|
||||
)
|
||||
|
||||
maybe_color=""
|
||||
if echo $mute | grep -q yes; then
|
||||
# maybe_color='"color": "#AA5500",'
|
||||
maybe_color='"color": "#555555",'
|
||||
fi
|
||||
|
||||
JSON=$( \
|
||||
echo "$JSON" \
|
||||
| jq ". |= [{
|
||||
\"name\": \"volume\",
|
||||
\"markup\": \"none\",
|
||||
$maybe_color
|
||||
\"full_text\": \"VOL: $volume %\"
|
||||
}] + ."
|
||||
)
|
||||
}
|
||||
|
||||
add_mic() {
|
||||
# name=$(get-source-name)
|
||||
mute=$(pactl get-source-mute @DEFAULT_SOURCE@)
|
||||
volume=$( \
|
||||
pactl get-source-volume @DEFAULT_SOURCE@ \
|
||||
| grep -Eo '[0-9]+%' \
|
||||
| cut -d% -f1 \
|
||||
| head -n 1 \
|
||||
)
|
||||
|
||||
maybe_color=""
|
||||
if echo $mute | grep -q yes; then
|
||||
maybe_color='"color": "#555555",'
|
||||
fi
|
||||
|
||||
JSON=$( \
|
||||
echo "$JSON" \
|
||||
| jq ". |= [{
|
||||
\"name\": \"mic\",
|
||||
\"markup\": \"none\",
|
||||
$maybe_color
|
||||
\"full_text\": \"MIC: $volume %\"
|
||||
}] + ."
|
||||
)
|
||||
}
|
||||
|
||||
i3status | (
|
||||
read version
|
||||
echo "$version"
|
||||
|
||||
read init_arr
|
||||
echo "$init_arr"
|
||||
|
||||
while true; do
|
||||
read line
|
||||
JSON=$(echo "$line" | sed -e 's/^,//' | jq)
|
||||
# add_volume
|
||||
# add_mic
|
||||
echo "${JSON},"
|
||||
done
|
||||
)
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -euf
|
||||
|
||||
exec "$TERMINAL" -e "$@"
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,110 @@
|
||||
Copyright (c) 2015-2024, Renzhi Li (aka. Belleve Invis, belleve@typeof.net)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
--------------------------
|
||||
|
||||
|
||||
SIL Open Font License v1.1
|
||||
====================================================
|
||||
|
||||
|
||||
Preamble
|
||||
----------
|
||||
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
|
||||
Definitions
|
||||
-------------
|
||||
|
||||
`"Font Software"` refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
`"Reserved Font Name"` refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
`"Original Version"` refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
`"Modified Version"` refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
`"Author"` refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
|
||||
Permission & Conditions
|
||||
------------------------
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1. Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2. Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3. No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5. The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
|
||||
|
||||
Termination
|
||||
-----------
|
||||
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
|
||||
DISCLAIMER
|
||||
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
@@ -0,0 +1,12 @@
|
||||
[buildPlans.IosevkaCustom]
|
||||
family = "Iosevka Custom"
|
||||
spacing = "normal"
|
||||
serifs = "sans"
|
||||
noCvSs = false
|
||||
exportGlyphNames = true
|
||||
noLigation = true
|
||||
|
||||
[buildPlans.IosevkaCustom.widths.Normal]
|
||||
shape = 600
|
||||
menu = 5
|
||||
css = "normal"
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Ryan L McIntyre
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,46 @@
|
||||
# Nerd Fonts
|
||||
|
||||
This is an archived font from the Nerd Fonts release v3.1.1.
|
||||
|
||||
For more information see:
|
||||
* https://github.com/ryanoasis/nerd-fonts/
|
||||
* https://github.com/ryanoasis/nerd-fonts/releases/latest/
|
||||
|
||||
# Symbols Only
|
||||
|
||||
This font contains (in the patched-fonts folder) all symbols and is intended to be used
|
||||
as fallback or together with fontconfig - so that you do not need to individually
|
||||
patch all the fonts. YMMV.
|
||||
|
||||
## Which font?
|
||||
|
||||
### TL;DR
|
||||
|
||||
* Pick your font family:
|
||||
* If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`).
|
||||
* If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv.
|
||||
* If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`).
|
||||
|
||||
### Ligatures
|
||||
|
||||
Ligatures are generally preserved in the patched fonts.
|
||||
Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`.
|
||||
If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings.
|
||||
|
||||
### Explanation
|
||||
|
||||
Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices:
|
||||
|
||||
#### `Option 1: Download already patched font`
|
||||
|
||||
* For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases)
|
||||
* Or download the development version from the folders here
|
||||
|
||||
#### `Option 2: Patch your own font`
|
||||
|
||||
* Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size)
|
||||
|
||||
For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font)
|
||||
|
||||
[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
touchpad_id=$(xinput list | grep -i 'touchpad' | grep -oE 'id=[0-9]+' | cut -d= -f2)
|
||||
|
||||
if [ -z "$touchpad_id" ]; then
|
||||
echo "Touchpad not found." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
xinput set-prop "$touchpad_id" "libinput Tapping Enabled" 1
|
||||
xinput set-prop "$touchpad_id" "libinput Natural Scrolling Enabled" 1
|
||||
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env sh
|
||||
# Generate with arandr
|
||||
# xrandr \
|
||||
# --output eDP \
|
||||
# --mode 1920x1080 \
|
||||
# --pos 0x0 \
|
||||
# --rotate normal \
|
||||
# --output HDMI-A-0 --off \
|
||||
# --output DisplayPort-0 --off \
|
||||
# --output DisplayPort-1 --off \
|
||||
# --output DisplayPort-2 --off \
|
||||
# --output DisplayPort-3 \
|
||||
# --primary \
|
||||
# --mode 2560x1440 \
|
||||
# --pos 1920x0 \
|
||||
# --rotate normal \
|
||||
# --output DisplayPort-4 \
|
||||
# --mode 1920x1200 \
|
||||
# --pos 4480x0 \
|
||||
# --rotate normal
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
DISTRO="$(sed -n 's/^NAME="\([^"]\+\)"/\1/p' /etc/os-release)"
|
||||
|
||||
userresources=$HOME/.Xresources
|
||||
usermodmap=$HOME/.Xmodmap
|
||||
sysresources=/etc/X11/xinit/.Xresources
|
||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
||||
|
||||
# merge in defaults and keymaps
|
||||
|
||||
if [ -f $sysresources ]; then
|
||||
xrdb -merge $sysresources
|
||||
fi
|
||||
|
||||
if [ -f $sysmodmap ]; then
|
||||
xmodmap $sysmodmap
|
||||
fi
|
||||
|
||||
if [ -f "$userresources" ]; then
|
||||
xrdb -merge "$userresources"
|
||||
fi
|
||||
|
||||
if [ -f "$usermodmap" ]; then
|
||||
xmodmap "$usermodmap"
|
||||
fi
|
||||
|
||||
# start some nice programs
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
||||
export TERMINAL=alacritty
|
||||
export GTK_THEME=Adwaita:dark
|
||||
export QT_QPA_PLATFORMTHEME=qt6ct
|
||||
setxkbmap -layout eu
|
||||
|
||||
# Disable screen-saver
|
||||
xset s off
|
||||
|
||||
# Enable DPMS to turn off displays after 10 minutes
|
||||
xset dpms 600 600 600
|
||||
|
||||
"$HOME/.xinit-scripts/screen-layout.sh"
|
||||
"$HOME/.xinit-scripts/input-devices.sh"
|
||||
|
||||
# Start background processes
|
||||
picom &
|
||||
dunst &
|
||||
snixembed &
|
||||
nm-applet &
|
||||
pasystray -g &
|
||||
solaar -w hide &
|
||||
|
||||
WM="i3"
|
||||
|
||||
if [ "$DISTRO" = "Void" ]; then
|
||||
# Setup XDG_RUNTIME_DIR
|
||||
XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
||||
if [ -d "$XDG_RUNTIME_DIR" ]; then
|
||||
export XDG_RUNTIME_DIR
|
||||
fi
|
||||
|
||||
# Start pipewire
|
||||
pipewire &
|
||||
|
||||
# Run with a D-Bus session bus. Enable dbus service for a system bus.
|
||||
exec dbus-run-session "$WM"
|
||||
else
|
||||
exec "$WM"
|
||||
fi
|
||||
@@ -0,0 +1,6 @@
|
||||
zsh-users/zsh-completions
|
||||
belak/zsh-utils path:completion
|
||||
belak/zsh-utils path:history
|
||||
belak/zsh-utils path:utility
|
||||
zsh-users/zsh-autosuggestions
|
||||
romkatv/powerlevel10k
|
||||
@@ -0,0 +1,186 @@
|
||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||
# Initialization code that may require console input (password prompts, [y/n]
|
||||
# confirmations, etc.) must go above this block; everything else may go below.
|
||||
cache_dir="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
p10k_instant_prompt="${cache_dir}/p10k-instant-prompt-${USER}.zsh"
|
||||
if [[ -r $p10k_instant_prompt ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "$p10k_instant_prompt"
|
||||
fi
|
||||
|
||||
###########
|
||||
# Options #
|
||||
###########
|
||||
# Ref: https://zsh.sourceforge.io/Doc/Release/Options.html
|
||||
|
||||
setopt CORRECT
|
||||
setopt NONOMATCH
|
||||
setopt INTERACTIVECOMMENTS
|
||||
|
||||
###################
|
||||
# Shell Variables #
|
||||
###################
|
||||
# Ref: https://zsh.sourceforge.io/Doc/Release/Parameters.html
|
||||
|
||||
path+=("${HOME}/.local/bin")
|
||||
export PATH
|
||||
export MAIL="/var/spool/mail/$USER"
|
||||
export MAILCHECK=60
|
||||
|
||||
###################
|
||||
# Other Variables #
|
||||
###################
|
||||
|
||||
export VISUAL="nvim"
|
||||
export EDITOR="nvim"
|
||||
export DIFFPROG="nvim -d"
|
||||
export NNN_TRASH=2
|
||||
export NNN_PLUG=''
|
||||
|
||||
##################
|
||||
# History search #
|
||||
##################
|
||||
|
||||
autoload -U history-search-end
|
||||
zle -N history-beginning-search-backward-end history-search-end
|
||||
zle -N history-beginning-search-forward-end history-search-end
|
||||
|
||||
# Fix for buggy behaviour of history search
|
||||
# See https://github.com/zsh-users/zsh-autosuggestions/issues/619#issuecomment-904193190
|
||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-beginning-search-backward-end history-beginning-search-forward-end)
|
||||
|
||||
zstyle ':autocomplete:tab:*' completion select
|
||||
|
||||
############
|
||||
# Keybinds #
|
||||
############
|
||||
|
||||
if ! infocmp "$TERM" >/dev/null; then
|
||||
echo "TERM $TERM not supported on your system!" >&2
|
||||
echo "Some keybindings might not work properly." >&2
|
||||
fi
|
||||
|
||||
if [[ -n $terminfo ]]; then
|
||||
# create a zkbd compatible hash;
|
||||
# to add other keys to this hash, see: man terminfo 5
|
||||
typeset -g -A key
|
||||
|
||||
key[Home]=${terminfo[khome]}
|
||||
key[End]=${terminfo[kend]}
|
||||
key[Insert]=${terminfo[kich1]}
|
||||
key[Delete]=${terminfo[kdch1]}
|
||||
key[Up]=${terminfo[kcuu1]}
|
||||
key[Down]=${terminfo[kcud1]}
|
||||
key[Left]=${terminfo[kcub1]}
|
||||
key[Right]=${terminfo[kcuf1]}
|
||||
key[PageUp]=${terminfo[kpp]}
|
||||
key[PageDown]=${terminfo[knp]}
|
||||
key[CtrlLeft]=${terminfo[kLFT5]}
|
||||
key[CtrlRight]=${terminfo[kRIT5]}
|
||||
|
||||
# Function mapping
|
||||
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
|
||||
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
|
||||
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
|
||||
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char
|
||||
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" history-beginning-search-backward-end
|
||||
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" history-beginning-search-forward-end
|
||||
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
|
||||
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
|
||||
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" beginning-of-history
|
||||
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" end-of-history
|
||||
[[ -n "${key[CtrlLeft]}" ]] && bindkey "${key[CtrlLeft]}" backward-word
|
||||
[[ -n "${key[CtrlRight]}" ]] && bindkey "${key[CtrlRight]}" forward-word
|
||||
|
||||
bindkey "^R" history-incremental-search-backward
|
||||
|
||||
# Finally, make sure the terminal is in application mode, when zle is
|
||||
# active. Only then are the values from $terminfo valid.
|
||||
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
|
||||
autoload -Uz add-zle-hook-widget
|
||||
function zle_application_mode_start { echoti smkx; }
|
||||
function zle_application_mode_stop { echoti rmkx; }
|
||||
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
|
||||
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
|
||||
fi
|
||||
fi
|
||||
|
||||
###########
|
||||
# Plugins #
|
||||
###########
|
||||
|
||||
# Bootstrap
|
||||
if [[ ! -d ~/.antidote ]]; then
|
||||
git clone --depth=1 https://github.com/mattmc3/antidote.git ~/.antidote
|
||||
fi
|
||||
|
||||
# Plugins are declared in ~/.zsh_plugins.txt
|
||||
source ~/.antidote/antidote.zsh
|
||||
antidote load
|
||||
|
||||
#############
|
||||
# Functions #
|
||||
#############
|
||||
# Ref: https://zsh.sourceforge.io/Doc/Release/Functions.html#Functions
|
||||
|
||||
function set_terminal_title() {
|
||||
local title
|
||||
if [ -z "$1" ]; then
|
||||
title=$(basename $(print -P "%~"))
|
||||
else
|
||||
title="$1"
|
||||
fi
|
||||
echo -ne "\033]2;$title\033\\"
|
||||
}
|
||||
|
||||
function precmd() { set_terminal_title }
|
||||
# function preexec() { set_terminal_title "$1" }
|
||||
|
||||
function ssh_with_title() {
|
||||
local host=""
|
||||
local skip_next="false"
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
-[bcDeFIiLlmOopRSWw]?*)
|
||||
# Option with argument immediately after, like -p22
|
||||
skip_next="false"
|
||||
;;
|
||||
-[bcDeFIiLlmOopRSWw])
|
||||
# Option with argument on next iteration
|
||||
skip_next="true"
|
||||
;;
|
||||
-*)
|
||||
# Any other option, assumed not to take an argument
|
||||
skip_next="false"
|
||||
;;
|
||||
*)
|
||||
if [ "$skip_next" = "true" ]; then
|
||||
skip_next="false"
|
||||
else
|
||||
host="${arg#*@}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
set_terminal_title "$host"
|
||||
ssh "$@"
|
||||
set_terminal_title
|
||||
}
|
||||
|
||||
###########
|
||||
# Aliases #
|
||||
###########
|
||||
|
||||
alias ln='ln -fi'
|
||||
alias rm='rm -I'
|
||||
alias n='nnn -dHerU'
|
||||
alias ssh='ssh_with_title'
|
||||
|
||||
##########
|
||||
# Prompt #
|
||||
##########
|
||||
# eval "$(starship init zsh)"
|
||||
|
||||
source ~/.p10k.zsh
|
||||
Executable
+186
@@ -0,0 +1,186 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
set -e
|
||||
|
||||
DISTRO="$(sed -n 's/^NAME="\([^"]\+\)"/\1/p' /etc/os-release)"
|
||||
|
||||
SCRIPT_FILE="$(readlink -f -- "$0")"
|
||||
SCRIPT_NAME="$(basename -- "$SCRIPT_FILE")"
|
||||
SCRIPT_DIR="$(dirname -- "$SCRIPT_FILE")"
|
||||
|
||||
SOURCE_DIR="$SCRIPT_DIR"
|
||||
TARGET_DIR="$HOME"
|
||||
|
||||
PRINT_HELP=false
|
||||
REMOVE_EXISTING=false
|
||||
IGNORE_EXISTING=false
|
||||
ERROR=false
|
||||
|
||||
# Define packages
|
||||
typeset -a PKGS
|
||||
PKGS=(
|
||||
"zsh"
|
||||
"tmux"
|
||||
"alacritty"
|
||||
"i3"
|
||||
"i3status"
|
||||
"i3lock"
|
||||
"picom"
|
||||
"dunst"
|
||||
"rofi"
|
||||
"startx"
|
||||
"lf"
|
||||
"jq"
|
||||
)
|
||||
|
||||
# Define paths to symlink
|
||||
typeset -a SYMLINKS
|
||||
SYMLINKS=(
|
||||
".Xresources"
|
||||
".xinitrc"
|
||||
".xinit-scripts"
|
||||
".zshrc"
|
||||
".zsh_plugins.txt"
|
||||
".p10k.zsh"
|
||||
".gtkrc-2.0"
|
||||
".config/tmux"
|
||||
".config/alacritty"
|
||||
".config/i3"
|
||||
".config/i3status"
|
||||
".config/rofi"
|
||||
".config/picom"
|
||||
".config/dunst"
|
||||
".config/lf"
|
||||
".config/gtk-3.0"
|
||||
".config/gtk-4.0"
|
||||
".local/bin"
|
||||
".local/share/fonts"
|
||||
)
|
||||
|
||||
error() {
|
||||
msg="$1"
|
||||
ERROR=true
|
||||
echo "Error: $msg" >&2
|
||||
}
|
||||
|
||||
check_packages_installed() {
|
||||
for pkg in "${PKGS[@]}"; do
|
||||
if ! type "$pkg" >/dev/null; then
|
||||
error "missing $pkg"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
create_symlinks() {
|
||||
for link in "${SYMLINKS[@]}"; do
|
||||
SOURCE_PATH="${SOURCE_DIR}/$link"
|
||||
|
||||
# Check source exists
|
||||
if ! test -e "$SOURCE_PATH"; then
|
||||
error "the following source path does not exist:"
|
||||
error "$SOURCE_PATH"
|
||||
continue
|
||||
fi
|
||||
|
||||
TARGET_LINK="${TARGET_DIR}/$link"
|
||||
TARGET_LINK_PARENT="$(dirname -- "$TARGET_LINK")"
|
||||
|
||||
# Create parent dirs if necessary
|
||||
if ! test -d "$TARGET_LINK_PARENT"; then
|
||||
echo "Creating $TARGET_LINK_PARENT"
|
||||
mkdir -p "$TARGET_LINK_PARENT"
|
||||
fi
|
||||
|
||||
# Check if already exists as a symlink
|
||||
if test -s "$TARGET_LINK"; then
|
||||
if ! $IGNORE_EXISTING; then
|
||||
error "target link already exists:"
|
||||
error "$TARGET_LINK"
|
||||
fi
|
||||
continue
|
||||
elif test -e "$TARGET_LINK"; then
|
||||
error "target path already exists and is not a symlink:"
|
||||
error "$TARGET_LINK"
|
||||
continue
|
||||
fi
|
||||
|
||||
# Create link
|
||||
echo "Linking $SOURCE_PATH -> $TARGET_LINK"
|
||||
ln -s "$SOURCE_PATH" "$TARGET_LINK"
|
||||
done
|
||||
}
|
||||
|
||||
remove_existing() {
|
||||
for link in "${SYMLINKS[@]}"; do
|
||||
TARGET_LINK="${TARGET_DIR}/$link"
|
||||
TARGET_LINK_PARENT="$(dirname -- "$TARGET_LINK")"
|
||||
|
||||
if test -s "$TARGET_LINK"; then\
|
||||
echo "Removing symlink $TARGET_LINK"
|
||||
rm "$TARGET_LINK"
|
||||
elif test -e "$TARGET_LINK"; then
|
||||
error "target path already exists and is not a symlink:"
|
||||
error "$TARGET_LINK"
|
||||
fi
|
||||
done
|
||||
|
||||
if $ERROR; then
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_terminfo() {
|
||||
if ! infocmp tmux-256color > /dev/null; then
|
||||
error "Missing terminfo for tmux-256color. Try installing ncurses-term."
|
||||
fi
|
||||
|
||||
if $ERROR; then
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
print_help() {
|
||||
echo "Usage: $SCRIPT_NAME [...]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -h, --help Print this help message"
|
||||
echo " -i, --ignore-existing Ignore existing symlinks"
|
||||
echo " -r, --remove-existing Remove any existing symlinks"
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
PRINT_HELP=true
|
||||
shift
|
||||
;;
|
||||
-r|--remove-existing)
|
||||
REMOVE_EXISTING=true
|
||||
shift
|
||||
;;
|
||||
-i|--ignore-existing)
|
||||
IGNORE_EXISTING=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
error "unknown option: $1"
|
||||
PRINT_HELP=true
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if $PRINT_HELP; then
|
||||
print_help
|
||||
elif $REMOVE_EXISTING; then
|
||||
remove_existing
|
||||
else
|
||||
check_terminfo
|
||||
check_packages_installed
|
||||
create_symlinks
|
||||
fi
|
||||
|
||||
if $ERROR; then
|
||||
exit 1
|
||||
fi
|
||||
@@ -0,0 +1,32 @@
|
||||
[/]
|
||||
animate-appicon-hover=false
|
||||
animate-appicon-hover-animation-extent={'RIPPLE': 4, 'PLANK': 4, 'SIMPLE': 1}
|
||||
appicon-margin=0
|
||||
appicon-padding=4
|
||||
available-monitors=[0, 1]
|
||||
dot-position='BOTTOM'
|
||||
dot-size=0
|
||||
focus-highlight-color='#9a9996'
|
||||
focus-highlight-dominant=false
|
||||
group-apps=false
|
||||
group-apps-underline-unfocused=false
|
||||
group-apps-use-launchers=true
|
||||
hide-overview-on-startup=true
|
||||
hotkeys-overlay-combo='TEMPORARILY'
|
||||
isolate-monitors=true
|
||||
isolate-workspaces=true
|
||||
leftbox-padding=-1
|
||||
panel-anchors='{"0":"MIDDLE","1":"MIDDLE"}'
|
||||
panel-element-positions='{"0":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"stackedTL"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":false,"position":"stackedBR"}],"1":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"stackedTL"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":false,"position":"stackedBR"}]}'
|
||||
panel-lengths='{"0":100,"1":100}'
|
||||
panel-positions='{"0":"TOP","1":"TOP"}'
|
||||
panel-sizes='{"0":36,"1":36}'
|
||||
primary-monitor=0
|
||||
show-appmenu=false
|
||||
show-window-previews=false
|
||||
status-icon-padding=-1
|
||||
stockgs-keep-dash=false
|
||||
stockgs-keep-top-panel=false
|
||||
trans-use-custom-bg=false
|
||||
tray-padding=-1
|
||||
window-preview-title-position='TOP'
|
||||
@@ -0,0 +1,3 @@
|
||||
ChallengeResponseAuthentication no
|
||||
PasswordAuthentication no
|
||||
PermitRootLogin no
|
||||
@@ -0,0 +1,367 @@
|
||||
{
|
||||
"$help": "https://aka.ms/terminal-documentation",
|
||||
"$schema": "https://aka.ms/terminal-profiles-schema",
|
||||
"actions":
|
||||
[
|
||||
{
|
||||
"command":
|
||||
{
|
||||
"action": "copy",
|
||||
"singleLine": false
|
||||
},
|
||||
"keys": "ctrl+c"
|
||||
},
|
||||
{
|
||||
"command": "paste",
|
||||
"keys": "ctrl+v"
|
||||
},
|
||||
{
|
||||
"command": "find",
|
||||
"keys": "ctrl+shift+f"
|
||||
},
|
||||
{
|
||||
"command":
|
||||
{
|
||||
"action": "splitPane",
|
||||
"split": "auto",
|
||||
"splitMode": "duplicate"
|
||||
},
|
||||
"keys": "alt+shift+d"
|
||||
}
|
||||
],
|
||||
"copyFormatting": "none",
|
||||
"copyOnSelect": false,
|
||||
"defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
|
||||
"newTabMenu":
|
||||
[
|
||||
{
|
||||
"type": "remainingProfiles"
|
||||
}
|
||||
],
|
||||
"profiles":
|
||||
{
|
||||
"defaults":
|
||||
{
|
||||
"antialiasingMode": "cleartype",
|
||||
"bellStyle": "none",
|
||||
"colorScheme": "moonfly",
|
||||
"cursorShape": "filledBox",
|
||||
"font":
|
||||
{
|
||||
"face": "Iosevka Custom",
|
||||
"size": 11.0
|
||||
},
|
||||
"scrollbarState": "hidden",
|
||||
"useAtlasEngine": true
|
||||
},
|
||||
"list":
|
||||
[
|
||||
{
|
||||
"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
|
||||
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
|
||||
"hidden": false,
|
||||
"name": "Windows PowerShell"
|
||||
},
|
||||
{
|
||||
"commandline": "%SystemRoot%\\System32\\cmd.exe",
|
||||
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
|
||||
"hidden": false,
|
||||
"name": "Command Prompt"
|
||||
},
|
||||
{
|
||||
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
|
||||
"hidden": false,
|
||||
"name": "Azure Cloud Shell",
|
||||
"source": "Windows.Terminal.Azure"
|
||||
},
|
||||
{
|
||||
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
|
||||
"hidden": false,
|
||||
"name": "PowerShell",
|
||||
"source": "Windows.Terminal.PowershellCore"
|
||||
},
|
||||
{
|
||||
"guid": "{51855cb2-8cce-5362-8f54-464b92b32386}",
|
||||
"hidden": false,
|
||||
"name": "Ubuntu",
|
||||
"source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc"
|
||||
},
|
||||
{
|
||||
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
|
||||
"hidden": true,
|
||||
"name": "Ubuntu",
|
||||
"source": "Windows.Terminal.Wsl"
|
||||
},
|
||||
{
|
||||
"guid": "{76650998-b55c-5538-8a81-320ad1c0c2a3}",
|
||||
"hidden": false,
|
||||
"name": "Developer Command Prompt for VS 2022",
|
||||
"source": "Windows.Terminal.VisualStudio"
|
||||
},
|
||||
{
|
||||
"guid": "{1b231924-c59c-57dc-adb1-abf4a724d3eb}",
|
||||
"hidden": false,
|
||||
"name": "Developer PowerShell for VS 2022",
|
||||
"source": "Windows.Terminal.VisualStudio"
|
||||
}
|
||||
]
|
||||
},
|
||||
"schemes":
|
||||
[
|
||||
{
|
||||
"background": "#0C0C0C",
|
||||
"black": "#0C0C0C",
|
||||
"blue": "#0037DA",
|
||||
"brightBlack": "#767676",
|
||||
"brightBlue": "#3B78FF",
|
||||
"brightCyan": "#61D6D6",
|
||||
"brightGreen": "#16C60C",
|
||||
"brightPurple": "#B4009E",
|
||||
"brightRed": "#E74856",
|
||||
"brightWhite": "#F2F2F2",
|
||||
"brightYellow": "#F9F1A5",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#3A96DD",
|
||||
"foreground": "#CCCCCC",
|
||||
"green": "#13A10E",
|
||||
"name": "Campbell",
|
||||
"purple": "#881798",
|
||||
"red": "#C50F1F",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#CCCCCC",
|
||||
"yellow": "#C19C00"
|
||||
},
|
||||
{
|
||||
"background": "#012456",
|
||||
"black": "#0C0C0C",
|
||||
"blue": "#0037DA",
|
||||
"brightBlack": "#767676",
|
||||
"brightBlue": "#3B78FF",
|
||||
"brightCyan": "#61D6D6",
|
||||
"brightGreen": "#16C60C",
|
||||
"brightPurple": "#B4009E",
|
||||
"brightRed": "#E74856",
|
||||
"brightWhite": "#F2F2F2",
|
||||
"brightYellow": "#F9F1A5",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#3A96DD",
|
||||
"foreground": "#CCCCCC",
|
||||
"green": "#13A10E",
|
||||
"name": "Campbell Powershell",
|
||||
"purple": "#881798",
|
||||
"red": "#C50F1F",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#CCCCCC",
|
||||
"yellow": "#C19C00"
|
||||
},
|
||||
{
|
||||
"background": "#282C34",
|
||||
"black": "#282C34",
|
||||
"blue": "#61AFEF",
|
||||
"brightBlack": "#5A6374",
|
||||
"brightBlue": "#61AFEF",
|
||||
"brightCyan": "#56B6C2",
|
||||
"brightGreen": "#98C379",
|
||||
"brightPurple": "#C678DD",
|
||||
"brightRed": "#E06C75",
|
||||
"brightWhite": "#DCDFE4",
|
||||
"brightYellow": "#E5C07B",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#56B6C2",
|
||||
"foreground": "#DCDFE4",
|
||||
"green": "#98C379",
|
||||
"name": "One Half Dark",
|
||||
"purple": "#C678DD",
|
||||
"red": "#E06C75",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#DCDFE4",
|
||||
"yellow": "#E5C07B"
|
||||
},
|
||||
{
|
||||
"background": "#FAFAFA",
|
||||
"black": "#383A42",
|
||||
"blue": "#0184BC",
|
||||
"brightBlack": "#4F525D",
|
||||
"brightBlue": "#61AFEF",
|
||||
"brightCyan": "#56B5C1",
|
||||
"brightGreen": "#98C379",
|
||||
"brightPurple": "#C577DD",
|
||||
"brightRed": "#DF6C75",
|
||||
"brightWhite": "#FFFFFF",
|
||||
"brightYellow": "#E4C07A",
|
||||
"cursorColor": "#4F525D",
|
||||
"cyan": "#0997B3",
|
||||
"foreground": "#383A42",
|
||||
"green": "#50A14F",
|
||||
"name": "One Half Light",
|
||||
"purple": "#A626A4",
|
||||
"red": "#E45649",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#FAFAFA",
|
||||
"yellow": "#C18301"
|
||||
},
|
||||
{
|
||||
"background": "#002B36",
|
||||
"black": "#002B36",
|
||||
"blue": "#268BD2",
|
||||
"brightBlack": "#073642",
|
||||
"brightBlue": "#839496",
|
||||
"brightCyan": "#93A1A1",
|
||||
"brightGreen": "#586E75",
|
||||
"brightPurple": "#6C71C4",
|
||||
"brightRed": "#CB4B16",
|
||||
"brightWhite": "#FDF6E3",
|
||||
"brightYellow": "#657B83",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#2AA198",
|
||||
"foreground": "#839496",
|
||||
"green": "#859900",
|
||||
"name": "Solarized Dark",
|
||||
"purple": "#D33682",
|
||||
"red": "#DC322F",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#EEE8D5",
|
||||
"yellow": "#B58900"
|
||||
},
|
||||
{
|
||||
"background": "#FDF6E3",
|
||||
"black": "#002B36",
|
||||
"blue": "#268BD2",
|
||||
"brightBlack": "#073642",
|
||||
"brightBlue": "#839496",
|
||||
"brightCyan": "#93A1A1",
|
||||
"brightGreen": "#586E75",
|
||||
"brightPurple": "#6C71C4",
|
||||
"brightRed": "#CB4B16",
|
||||
"brightWhite": "#FDF6E3",
|
||||
"brightYellow": "#657B83",
|
||||
"cursorColor": "#002B36",
|
||||
"cyan": "#2AA198",
|
||||
"foreground": "#657B83",
|
||||
"green": "#859900",
|
||||
"name": "Solarized Light",
|
||||
"purple": "#D33682",
|
||||
"red": "#DC322F",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#EEE8D5",
|
||||
"yellow": "#B58900"
|
||||
},
|
||||
{
|
||||
"background": "#000000",
|
||||
"black": "#000000",
|
||||
"blue": "#3465A4",
|
||||
"brightBlack": "#555753",
|
||||
"brightBlue": "#729FCF",
|
||||
"brightCyan": "#34E2E2",
|
||||
"brightGreen": "#8AE234",
|
||||
"brightPurple": "#AD7FA8",
|
||||
"brightRed": "#EF2929",
|
||||
"brightWhite": "#EEEEEC",
|
||||
"brightYellow": "#FCE94F",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#06989A",
|
||||
"foreground": "#D3D7CF",
|
||||
"green": "#4E9A06",
|
||||
"name": "Tango Dark",
|
||||
"purple": "#75507B",
|
||||
"red": "#CC0000",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#D3D7CF",
|
||||
"yellow": "#C4A000"
|
||||
},
|
||||
{
|
||||
"background": "#FFFFFF",
|
||||
"black": "#000000",
|
||||
"blue": "#3465A4",
|
||||
"brightBlack": "#555753",
|
||||
"brightBlue": "#729FCF",
|
||||
"brightCyan": "#34E2E2",
|
||||
"brightGreen": "#8AE234",
|
||||
"brightPurple": "#AD7FA8",
|
||||
"brightRed": "#EF2929",
|
||||
"brightWhite": "#EEEEEC",
|
||||
"brightYellow": "#FCE94F",
|
||||
"cursorColor": "#000000",
|
||||
"cyan": "#06989A",
|
||||
"foreground": "#555753",
|
||||
"green": "#4E9A06",
|
||||
"name": "Tango Light",
|
||||
"purple": "#75507B",
|
||||
"red": "#CC0000",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#D3D7CF",
|
||||
"yellow": "#C4A000"
|
||||
},
|
||||
{
|
||||
"background": "#300A24",
|
||||
"black": "#171421",
|
||||
"blue": "#0037DA",
|
||||
"brightBlack": "#767676",
|
||||
"brightBlue": "#08458F",
|
||||
"brightCyan": "#2C9FB3",
|
||||
"brightGreen": "#26A269",
|
||||
"brightPurple": "#A347BA",
|
||||
"brightRed": "#C01C28",
|
||||
"brightWhite": "#F2F2F2",
|
||||
"brightYellow": "#A2734C",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#3A96DD",
|
||||
"foreground": "#FFFFFF",
|
||||
"green": "#26A269",
|
||||
"name": "Ubuntu-ColorScheme",
|
||||
"purple": "#881798",
|
||||
"red": "#C21A23",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#CCCCCC",
|
||||
"yellow": "#A2734C"
|
||||
},
|
||||
{
|
||||
"background": "#000000",
|
||||
"black": "#000000",
|
||||
"blue": "#000080",
|
||||
"brightBlack": "#808080",
|
||||
"brightBlue": "#0000FF",
|
||||
"brightCyan": "#00FFFF",
|
||||
"brightGreen": "#00FF00",
|
||||
"brightPurple": "#FF00FF",
|
||||
"brightRed": "#FF0000",
|
||||
"brightWhite": "#FFFFFF",
|
||||
"brightYellow": "#FFFF00",
|
||||
"cursorColor": "#FFFFFF",
|
||||
"cyan": "#008080",
|
||||
"foreground": "#C0C0C0",
|
||||
"green": "#008000",
|
||||
"name": "Vintage",
|
||||
"purple": "#800080",
|
||||
"red": "#800000",
|
||||
"selectionBackground": "#FFFFFF",
|
||||
"white": "#C0C0C0",
|
||||
"yellow": "#808000"
|
||||
},
|
||||
{
|
||||
"background": "#080808",
|
||||
"black": "#323437",
|
||||
"blue": "#80A0FF",
|
||||
"brightBlack": "#949494",
|
||||
"brightBlue": "#74B2FF",
|
||||
"brightCyan": "#85DC85",
|
||||
"brightGreen": "#36C692",
|
||||
"brightPurple": "#AE81FF",
|
||||
"brightRed": "#FF5189",
|
||||
"brightWhite": "#E4E4E4",
|
||||
"brightYellow": "#C2C292",
|
||||
"cursorColor": "#9E9E9E",
|
||||
"cyan": "#79DAC8",
|
||||
"foreground": "#BDBDBD",
|
||||
"green": "#8CC85F",
|
||||
"name": "moonfly",
|
||||
"purple": "#CF87E8",
|
||||
"red": "#FF5454",
|
||||
"selectionBackground": "#B2CEEE",
|
||||
"white": "#C6C6C6",
|
||||
"yellow": "#E3C78A"
|
||||
}
|
||||
],
|
||||
"themes": [],
|
||||
"useAcrylicInTabRow": false
|
||||
}
|
||||
Reference in New Issue
Block a user