Switch to i3
parent
b642f2f055
commit
65f26da829
|
@ -0,0 +1,430 @@
|
||||||
|
[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 = none
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "300x5-10+43"
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 25
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 5
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 0
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#00000000"
|
||||||
|
|
||||||
|
# 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 = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = Monospace 8
|
||||||
|
|
||||||
|
# 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://developer.gnome.org/pango/stable/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 = top
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = false
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||||
|
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||||
|
# max_icon_size takes precedence over this.
|
||||||
|
min_icon_size = 0
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/Dracula/actions/16/:/usr/share/icons/Dracula/16/:/usr/share/icons/Dracula/Places/16/
|
||||||
|
|
||||||
|
### 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/firefox -new-tab
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
# Manage dunst's desire for talking
|
||||||
|
# Can be one of the following values:
|
||||||
|
# crit: Critical features. Dunst aborts
|
||||||
|
# warn: Only non-fatal warnings
|
||||||
|
# mesg: Important Messages
|
||||||
|
# info: all unimportant stuff
|
||||||
|
# debug: all less than unimportant stuff
|
||||||
|
verbosity = mesg
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 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
|
||||||
|
|
||||||
|
### 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: If the notification has exactly one action, or one is marked as default,
|
||||||
|
# invoke it. If there are multiple and no default, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
# These values can be strung together for each mouse event, and
|
||||||
|
# will be executed in sequence.
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = 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
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = ctrl+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||||
|
# e.g. check output of 'xmodmap -pke'
|
||||||
|
history = ctrl+grave
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#282a36"
|
||||||
|
foreground = "#f8f8f2"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#282a36"
|
||||||
|
foreground = "#f8f8f2"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#900000"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#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
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
#
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||||
|
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||||
|
# the desktop-entry won't get localized.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||||
|
# client
|
||||||
|
#[transient_disable]
|
||||||
|
# match_transient = yes
|
||||||
|
# set_transient = no
|
||||||
|
#
|
||||||
|
# Make the handling of transient notifications more strict by making them not
|
||||||
|
# be placed in history.
|
||||||
|
#[transient_history_ignore]
|
||||||
|
# match_transient = yes
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[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
|
|
@ -2,6 +2,8 @@ set --export SHELL /bin/fish
|
||||||
set --export EDITOR "nvim"
|
set --export EDITOR "nvim"
|
||||||
set -e fish_greeting
|
set -e fish_greeting
|
||||||
|
|
||||||
|
set -U fish_user_paths /home/kalle/.gem/ruby/2.7.0/bin $fish_user_paths
|
||||||
|
|
||||||
source "$HOME/.config/fish/abbreviations.fish"
|
source "$HOME/.config/fish/abbreviations.fish"
|
||||||
|
|
||||||
function playlist-dl
|
function playlist-dl
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,153 @@
|
||||||
|
# Set the mod key to be the meta key.
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
# Set the font used by i3.
|
||||||
|
font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
# Launch picom on startup
|
||||||
|
exec --no-startup-id picom -bc
|
||||||
|
|
||||||
|
# Set a random desktop background
|
||||||
|
exec --no-startup-id feh --bg-scale --random ~/Pictures/Wallpapers/
|
||||||
|
|
||||||
|
# Launch polybar
|
||||||
|
exec --no-startup-id polybar primary
|
||||||
|
|
||||||
|
# Launch dunst
|
||||||
|
exec --no-startup-id dunst
|
||||||
|
|
||||||
|
# Launch MPD
|
||||||
|
exec --no-startup-id mpd
|
||||||
|
|
||||||
|
# Launch flameshot
|
||||||
|
exec --no-startup-id flameshot
|
||||||
|
|
||||||
|
# Use pactl to adjust volume in PulseAudio.
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||||
|
|
||||||
|
# Media player controls
|
||||||
|
bindsym XF86AudioPlay exec mpc toggle
|
||||||
|
bindsym XF86AudioNext exec mpc next
|
||||||
|
bindsym XF86AudioPrev exec mpc previous
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# Start kitty
|
||||||
|
bindsym $mod+Return exec --no-startup-id kitty
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# Start dmenu
|
||||||
|
bindsym $mod+d exec --no-startup-id dmenu_run
|
||||||
|
|
||||||
|
# Change focus
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l 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
|
||||||
|
|
||||||
|
# Enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# TODO: Change these hotkeys. Cause they suck.
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# Toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# Gaps
|
||||||
|
gaps inner 10
|
||||||
|
gaps outer 0
|
||||||
|
|
||||||
|
# Disable borders
|
||||||
|
for_window [class="^.*"] border pixel 1
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace number $ws1
|
||||||
|
bindsym $mod+2 workspace number $ws2
|
||||||
|
bindsym $mod+3 workspace number $ws3
|
||||||
|
bindsym $mod+4 workspace number $ws4
|
||||||
|
bindsym $mod+5 workspace number $ws5
|
||||||
|
bindsym $mod+6 workspace number $ws6
|
||||||
|
bindsym $mod+7 workspace number $ws7
|
||||||
|
bindsym $mod+8 workspace number $ws8
|
||||||
|
bindsym $mod+9 workspace number $ws9
|
||||||
|
bindsym $mod+0 workspace number $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
|
||||||
|
# Colors border bground text indicator child_border
|
||||||
|
client.focused #3366CC #2356BC #FFFFFF #3366CC #3366CC
|
||||||
|
client.focused_inactive #000000 #000000 #FFFFFF #000000 #000000
|
||||||
|
client.unfocused #000000 #000000 #FFFFFF #000000 #000000
|
||||||
|
client.urgent #900000 #900000 #FFFFFF #900000 #900000
|
||||||
|
client.placeholder #000000 #000000 #FFFFFF #000000 #000000
|
||||||
|
|
||||||
|
client.background #FFFFFF
|
||||||
|
|
||||||
|
# TODO: Change these.
|
||||||
|
# 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 10 px or 10 ppt
|
||||||
|
bindsym j resize grow height 10 px or 10 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym l resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
### [kitty](https://sw.kovidgoyal.net/kitty/)
|
||||||
|
|
||||||
|
#### Install
|
||||||
|
|
||||||
|
Download using the [GitHub .zip download](https://github.com/dracula/kitty/archive/master.zip) option
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp dracula.conf diff.conf ~/.config/kitty/
|
||||||
|
$ echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Then reload kitty for the config to take affect.
|
||||||
|
|
||||||
|
Alternatively copy paste `dracula.conf` directly into `kitty.conf`.
|
|
@ -0,0 +1,62 @@
|
||||||
|
# https://draculatheme.com/kitty
|
||||||
|
#
|
||||||
|
# Installation instructions:
|
||||||
|
#
|
||||||
|
# cp dracula.conf ~/.config/kitty/
|
||||||
|
# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
|
||||||
|
#
|
||||||
|
# Then reload kitty for the config to take affect.
|
||||||
|
# Alternatively copy paste below directly into kitty.conf
|
||||||
|
|
||||||
|
foreground #f8f8f2
|
||||||
|
background #282a36
|
||||||
|
selection_foreground #ffffff
|
||||||
|
selection_background #44475a
|
||||||
|
|
||||||
|
url_color #8be9fd
|
||||||
|
|
||||||
|
# black
|
||||||
|
color0 #21222c
|
||||||
|
color8 #6272a4
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #ff5555
|
||||||
|
color9 #ff6e6e
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #50fa7b
|
||||||
|
color10 #69ff94
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #f1fa8c
|
||||||
|
color11 #ffffa5
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #bd93f9
|
||||||
|
color12 #d6acff
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #ff79c6
|
||||||
|
color13 #ff92df
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #8be9fd
|
||||||
|
color14 #a4ffff
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 #f8f8f2
|
||||||
|
color15 #ffffff
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
cursor #f8f8f2
|
||||||
|
cursor_text_color background
|
||||||
|
|
||||||
|
# Tab bar colors
|
||||||
|
active_tab_foreground #282a36
|
||||||
|
active_tab_background #f8f8f2
|
||||||
|
inactive_tab_foreground #282a36
|
||||||
|
inactive_tab_background #6272a4
|
||||||
|
|
||||||
|
# Marks
|
||||||
|
mark1_foreground #282a36
|
||||||
|
mark1_background #ff5555
|
|
@ -0,0 +1,8 @@
|
||||||
|
font_family "Roboto Mono Nerd Font"
|
||||||
|
bold_font auto
|
||||||
|
italic_font auto
|
||||||
|
bold_italic_font auto
|
||||||
|
|
||||||
|
background_opacity 0.8
|
||||||
|
|
||||||
|
include dracula.conf
|
|
@ -0,0 +1,399 @@
|
||||||
|
# Files and directories #######################################################
|
||||||
|
#
|
||||||
|
# This setting controls the top directory which MPD will search to discover the
|
||||||
|
# available audio files and add them to the daemon's online database. This
|
||||||
|
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||||
|
# be disabled and audio files will only be accepted over ipc socket (using
|
||||||
|
# file:// protocol) or streaming files over an accepted protocol.
|
||||||
|
#
|
||||||
|
music_directory "~/Music"
|
||||||
|
#
|
||||||
|
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||||
|
# directory is storage for playlists created by MPD. The server will use
|
||||||
|
# playlist files not created by the server but only if they are in the MPD
|
||||||
|
# format. This setting defaults to playlist saving being disabled.
|
||||||
|
#
|
||||||
|
playlist_directory "~/.local/share/mpd/playlists"
|
||||||
|
#
|
||||||
|
# This setting sets the location of the MPD database. This file is used to
|
||||||
|
# load the database at server start up and store the database while the
|
||||||
|
# server is not up. This setting defaults to disabled which will allow
|
||||||
|
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||||
|
# files over an accepted protocol.
|
||||||
|
#
|
||||||
|
db_file "~/.local/share/mpd/database"
|
||||||
|
#
|
||||||
|
# These settings are the locations for the daemon log files for the daemon.
|
||||||
|
# These logs are great for troubleshooting, depending on your log_level
|
||||||
|
# settings.
|
||||||
|
#
|
||||||
|
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||||
|
# setting defaults to logging to syslog.
|
||||||
|
#
|
||||||
|
log_file "~/.local/share/mpd/log"
|
||||||
|
#
|
||||||
|
# This setting sets the location of the file which stores the process ID
|
||||||
|
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||||
|
# default and the pid file will not be stored.
|
||||||
|
#
|
||||||
|
pid_file "~/.local/share/mpd/pid"
|
||||||
|
#
|
||||||
|
# This setting sets the location of the file which contains information about
|
||||||
|
# most variables to get MPD back into the same general shape it was in before
|
||||||
|
# it was brought down. This setting is disabled by default and the server
|
||||||
|
# state will be reset on server start up.
|
||||||
|
#
|
||||||
|
state_file "~/.local/share/mpd/state"
|
||||||
|
#
|
||||||
|
# The location of the sticker database. This is a database which
|
||||||
|
# manages dynamic information attached to songs.
|
||||||
|
#
|
||||||
|
sticker_file "~/.local/share/mpd/sticker.sql"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# General music daemon options ################################################
|
||||||
|
#
|
||||||
|
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||||
|
# root and you may use this setting to make MPD change its user ID after
|
||||||
|
# initialization. This setting is disabled by default and MPD is run as the
|
||||||
|
# current user.
|
||||||
|
#
|
||||||
|
#user "nobody"
|
||||||
|
#
|
||||||
|
# This setting specifies the group that MPD will run as. If not specified
|
||||||
|
# primary group of user specified with "user" setting will be used (if set).
|
||||||
|
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||||
|
# have permission to use sound card.
|
||||||
|
#
|
||||||
|
#group "nogroup"
|
||||||
|
#
|
||||||
|
# This setting sets the address for the daemon to listen on. Careful attention
|
||||||
|
# should be paid if this is assigned to anything other then the default, any.
|
||||||
|
# This setting can deny access to control of the daemon. Not effective if
|
||||||
|
# systemd socket activiation is in use.
|
||||||
|
#
|
||||||
|
# For network
|
||||||
|
bind_to_address "0.0.0.0"
|
||||||
|
#
|
||||||
|
# And for Unix Socket
|
||||||
|
#bind_to_address "~/.mpd/socket"
|
||||||
|
#
|
||||||
|
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||||
|
# to.
|
||||||
|
#
|
||||||
|
port "6600"
|
||||||
|
#
|
||||||
|
# Suppress all messages below the given threshold. Use "verbose" for
|
||||||
|
# troubleshooting.
|
||||||
|
#
|
||||||
|
#log_level "notice"
|
||||||
|
#
|
||||||
|
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||||
|
# of starting playback after startup.
|
||||||
|
#
|
||||||
|
#restore_paused "no"
|
||||||
|
#
|
||||||
|
# This setting enables MPD to create playlists in a format usable by other
|
||||||
|
# music players.
|
||||||
|
#
|
||||||
|
#save_absolute_paths_in_playlists "no"
|
||||||
|
#
|
||||||
|
# This setting defines a list of tag types that will be extracted during the
|
||||||
|
# audio file discovery process. The complete list of possible values can be
|
||||||
|
# found in the user manual.
|
||||||
|
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||||
|
#
|
||||||
|
# This example just enables the "comment" tag without disabling all
|
||||||
|
# the other supported tags:
|
||||||
|
#metadata_to_use "+comment"
|
||||||
|
#
|
||||||
|
# This setting enables automatic update of MPD's database when files in
|
||||||
|
# music_directory are changed.
|
||||||
|
#
|
||||||
|
#auto_update "yes"
|
||||||
|
#
|
||||||
|
# Limit the depth of the directories being watched, 0 means only watch
|
||||||
|
# the music directory itself. There is no limit by default.
|
||||||
|
#
|
||||||
|
#auto_update_depth "3"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Symbolic link behavior ######################################################
|
||||||
|
#
|
||||||
|
# If this setting is set to "yes", MPD will discover audio files by following
|
||||||
|
# symbolic links outside of the configured music_directory.
|
||||||
|
#
|
||||||
|
#follow_outside_symlinks "yes"
|
||||||
|
#
|
||||||
|
# If this setting is set to "yes", MPD will discover audio files by following
|
||||||
|
# symbolic links inside of the configured music_directory.
|
||||||
|
#
|
||||||
|
#follow_inside_symlinks "yes"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Zeroconf / Avahi Service Discovery ##########################################
|
||||||
|
#
|
||||||
|
# If this setting is set to "yes", service information will be published with
|
||||||
|
# Zeroconf / Avahi.
|
||||||
|
#
|
||||||
|
#zeroconf_enabled "yes"
|
||||||
|
#
|
||||||
|
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||||
|
# this MPD server on the network. %h will be replaced with the hostname.
|
||||||
|
#
|
||||||
|
#zeroconf_name "Music Player @ %h"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Permissions #################################################################
|
||||||
|
#
|
||||||
|
# If this setting is set, MPD will require password authorization. The password
|
||||||
|
# setting can be specified multiple times for different password profiles.
|
||||||
|
#
|
||||||
|
#password "password@read,add,control,admin"
|
||||||
|
#
|
||||||
|
# This setting specifies the permissions a user has who has not yet logged in.
|
||||||
|
#
|
||||||
|
#default_permissions "read,add,control,admin"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Database #######################################################################
|
||||||
|
#
|
||||||
|
|
||||||
|
#database {
|
||||||
|
# plugin "proxy"
|
||||||
|
# host "other.mpd.host"
|
||||||
|
# port "6600"
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Input #######################################################################
|
||||||
|
#
|
||||||
|
|
||||||
|
input {
|
||||||
|
plugin "curl"
|
||||||
|
# proxy "proxy.isp.com:8080"
|
||||||
|
# proxy_user "user"
|
||||||
|
# proxy_password "password"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Audio Output ################################################################
|
||||||
|
#
|
||||||
|
# MPD supports various audio output types, as well as playing through multiple
|
||||||
|
# audio outputs at the same time, through multiple audio_output settings
|
||||||
|
# blocks. Setting this block is optional, though the server will only attempt
|
||||||
|
# autodetection for one sound card.
|
||||||
|
#
|
||||||
|
# An example of an ALSA output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "alsa"
|
||||||
|
# name "My ALSA Device"
|
||||||
|
## device "hw:0,0" # optional
|
||||||
|
## mixer_type "hardware" # optional
|
||||||
|
## mixer_device "default" # optional
|
||||||
|
## mixer_control "PCM" # optional
|
||||||
|
## mixer_index "0" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an OSS output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "oss"
|
||||||
|
# name "My OSS Device"
|
||||||
|
## device "/dev/dsp" # optional
|
||||||
|
## mixer_type "hardware" # optional
|
||||||
|
## mixer_device "/dev/mixer" # optional
|
||||||
|
## mixer_control "PCM" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a shout output (for streaming to Icecast):
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "shout"
|
||||||
|
# encoder "vorbis" # optional
|
||||||
|
# name "My Shout Stream"
|
||||||
|
# host "localhost"
|
||||||
|
# port "8000"
|
||||||
|
# mount "/mpd.ogg"
|
||||||
|
# password "hackme"
|
||||||
|
# quality "5.0"
|
||||||
|
# bitrate "128"
|
||||||
|
# format "44100:16:1"
|
||||||
|
## protocol "icecast2" # optional
|
||||||
|
## user "source" # optional
|
||||||
|
## description "My Stream Description" # optional
|
||||||
|
## url "http://example.com" # optional
|
||||||
|
## genre "jazz" # optional
|
||||||
|
## public "no" # optional
|
||||||
|
## timeout "2" # optional
|
||||||
|
## mixer_type "software" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a recorder output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "recorder"
|
||||||
|
# name "My recorder"
|
||||||
|
# encoder "vorbis" # optional, vorbis or lame
|
||||||
|
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||||
|
## quality "5.0" # do not define if bitrate is defined
|
||||||
|
# bitrate "128" # do not define if quality is defined
|
||||||
|
# format "44100:16:1"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a httpd output (built-in HTTP streaming server):
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "httpd"
|
||||||
|
# name "My HTTP Stream"
|
||||||
|
# encoder "vorbis" # optional, vorbis or lame
|
||||||
|
# port "8000"
|
||||||
|
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||||
|
## quality "5.0" # do not define if bitrate is defined
|
||||||
|
# bitrate "128" # do not define if quality is defined
|
||||||
|
# format "44100:16:1"
|
||||||
|
# max_clients "0" # optional 0=no limit
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||||
|
#
|
||||||
|
audio_output {
|
||||||
|
type "pulse"
|
||||||
|
name "MPD"
|
||||||
|
# server "localhost" # optional
|
||||||
|
# sink "remote_server_sink" # optional
|
||||||
|
# media_role "media_role" #optional
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# An example of a winmm output (Windows multimedia API).
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "winmm"
|
||||||
|
# name "My WinMM output"
|
||||||
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||||
|
# or
|
||||||
|
## device "0" # optional
|
||||||
|
## mixer_type "hardware" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a wasapi output (Windows multimedia API).
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "wasapi"
|
||||||
|
# name "My WASAPI output"
|
||||||
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||||
|
# or
|
||||||
|
## device "0" # optional
|
||||||
|
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
||||||
|
## exclusive "no" # optional
|
||||||
|
## Enumerate all devices in log.
|
||||||
|
## enumerate "no" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an openal output.
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "openal"
|
||||||
|
# name "My OpenAL output"
|
||||||
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an sndio output.
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "sndio"
|
||||||
|
# name "sndio output"
|
||||||
|
# mixer_type "hardware"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an OS X output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "osx"
|
||||||
|
# name "My OS X Device"
|
||||||
|
## device "Built-in Output" # optional
|
||||||
|
## channel_map "-1,-1,0,1" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
## Example "pipe" output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "pipe"
|
||||||
|
# name "my pipe"
|
||||||
|
# command "aplay -f cd 2>/dev/null"
|
||||||
|
## Or if you're want to use AudioCompress
|
||||||
|
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||||
|
## Or to send raw PCM stream through PCM:
|
||||||
|
# command "nc example.org 8765"
|
||||||
|
# format "44100:16:2"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
## An example of a null output (for no audio output):
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "null"
|
||||||
|
# name "My Null Output"
|
||||||
|
# mixer_type "none" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Normalization automatic volume adjustments ##################################
|
||||||
|
#
|
||||||
|
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||||
|
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||||
|
# chooses between "track" and "album" depending on the current state of
|
||||||
|
# random playback. If random playback is enabled then "track" mode is used.
|
||||||
|
# See <http://www.replaygain.org> for more details about ReplayGain.
|
||||||
|
# This setting is off by default.
|
||||||
|
#
|
||||||
|
#replaygain "album"
|
||||||
|
#
|
||||||
|
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||||
|
# default this setting is disabled.
|
||||||
|
#
|
||||||
|
#replaygain_preamp "0"
|
||||||
|
#
|
||||||
|
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||||
|
# By default this setting is disabled.
|
||||||
|
#
|
||||||
|
#replaygain_missing_preamp "0"
|
||||||
|
#
|
||||||
|
# This setting enables or disables ReplayGain limiting.
|
||||||
|
# MPD calculates actual amplification based on the ReplayGain tags
|
||||||
|
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||||
|
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||||
|
# above its original level. If replaygain_limit is disabled such amplification
|
||||||
|
# might occur. By default this setting is enabled.
|
||||||
|
#
|
||||||
|
#replaygain_limit "yes"
|
||||||
|
#
|
||||||
|
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||||
|
# result in the volume of all playing audio to be adjusted so the output has
|
||||||
|
# equal "loudness". This setting is disabled by default.
|
||||||
|
#
|
||||||
|
#volume_normalization "no"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Character Encoding ##########################################################
|
||||||
|
#
|
||||||
|
# If file or directory names do not display correctly for your locale then you
|
||||||
|
# may need to modify this setting.
|
||||||
|
#
|
||||||
|
#filesystem_charset "UTF-8"
|
||||||
|
#
|
||||||
|
###############################################################################
|
|
@ -0,0 +1,150 @@
|
||||||
|
#################################
|
||||||
|
# Background-Blurring #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Blur background of semi-transparent / ARGB windows.
|
||||||
|
# Bad in performance, with driver-dependent behavior.
|
||||||
|
# The name of the switch may change without prior notifications.
|
||||||
|
#
|
||||||
|
blur-background = true;
|
||||||
|
|
||||||
|
# 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 = "5x5box";
|
||||||
|
|
||||||
|
|
||||||
|
# Exclude conditions for background blur.
|
||||||
|
# blur-background-exclude = []
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# General Settings #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||||
|
# `xrender` is the default one.
|
||||||
|
#
|
||||||
|
# backend = 'glx'
|
||||||
|
backend = "xrender";
|
||||||
|
|
||||||
|
# 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 = true;
|
||||||
|
|
||||||
|
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||||
|
mark-ovredir-focused = true;
|
||||||
|
|
||||||
|
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||||
|
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||||
|
detect-client-opacity = true;
|
||||||
|
|
||||||
|
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||||
|
# try detecting this with X RandR extension.
|
||||||
|
refresh-rate = 144;
|
||||||
|
|
||||||
|
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||||
|
# in the same group focused at the same time.
|
||||||
|
#
|
||||||
|
# detect-transient = false
|
||||||
|
detect-transient = true
|
||||||
|
|
||||||
|
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||||
|
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||||
|
# detect-transient is enabled, too.
|
||||||
|
#
|
||||||
|
# detect-client-leader = false
|
||||||
|
detect-client-leader = true
|
||||||
|
|
||||||
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
|
# Probably could improve performance on rapid window content changes,
|
||||||
|
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||||
|
# Recommended if it works.
|
||||||
|
#
|
||||||
|
# glx-no-rebind-pixmap = false
|
||||||
|
|
||||||
|
# Disable the use of damage information.
|
||||||
|
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||||
|
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||||
|
# The opposing option is use-damage
|
||||||
|
#
|
||||||
|
# no-use-damage = false
|
||||||
|
use-damage = true
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# 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 = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||||
|
dock = { shadow = false; }
|
||||||
|
dnd = { shadow = false; }
|
||||||
|
popup_menu = { opacity = 0.8; }
|
||||||
|
dropdown_menu = { opacity = 0.8; }
|
||||||
|
};
|
|
@ -0,0 +1,177 @@
|
||||||
|
[colors]
|
||||||
|
transparent = #00000000
|
||||||
|
background = #282a36
|
||||||
|
background-current = #44475a
|
||||||
|
foreground = #f8f8f2
|
||||||
|
cyan = #5ba9bd
|
||||||
|
green = #209a4b
|
||||||
|
orange = #cf885c
|
||||||
|
pink = #ff79c6
|
||||||
|
purple = #7d53b9
|
||||||
|
red = #cc3333
|
||||||
|
yellow = #997700
|
||||||
|
|
||||||
|
[bar/primary]
|
||||||
|
monitor = ${env:MONITOR:DP-4}
|
||||||
|
width = 100%
|
||||||
|
height = 28
|
||||||
|
|
||||||
|
background = ${colors.transparent}
|
||||||
|
foregorund = ${colors.foreground}
|
||||||
|
|
||||||
|
# No under/over line
|
||||||
|
line-size = 0
|
||||||
|
# Small border to pull it away from the green edges.
|
||||||
|
border-size = 5
|
||||||
|
border-bottom-size = 0
|
||||||
|
border-color = ${colors.transparent}
|
||||||
|
|
||||||
|
padding = 1
|
||||||
|
|
||||||
|
module-margin-left = 1
|
||||||
|
module-margin-right = 0
|
||||||
|
|
||||||
|
font-0 = "Roboto Mono Nerd Font:pixelsize=12;2"
|
||||||
|
|
||||||
|
tray-position = right
|
||||||
|
tray-background = ${colors.background}
|
||||||
|
|
||||||
|
modules-left = i3
|
||||||
|
modules-center = mpd
|
||||||
|
modules-right = memory pulseaudio du_root date
|
||||||
|
|
||||||
|
[module/i3]
|
||||||
|
type = internal/i3
|
||||||
|
format = <label-state> <label-mode>
|
||||||
|
index-sort = true
|
||||||
|
wrapping-scroll = false
|
||||||
|
|
||||||
|
; Only show workspaces on the same output as the bar
|
||||||
|
pin-workspaces = true
|
||||||
|
|
||||||
|
label-mode-padding = 2
|
||||||
|
label-mode-foreground = #000
|
||||||
|
label-mode-background = ${colors.background}
|
||||||
|
|
||||||
|
; focused = Active workspace on focused monitor
|
||||||
|
label-focused = %index%
|
||||||
|
label-focused-background = ${colors.background-current}
|
||||||
|
label-focused-padding = 2
|
||||||
|
|
||||||
|
; unfocused = Inactive workspace on any monitor
|
||||||
|
label-unfocused = %index%
|
||||||
|
label-unfocused-background = ${colors.background}
|
||||||
|
label-unfocused-padding = 2
|
||||||
|
|
||||||
|
; visible = Active workspace on unfocused monitor
|
||||||
|
label-visible = %index%
|
||||||
|
label-visible-background = ${self.label-focused-background}
|
||||||
|
label-visible-padding = ${self.label-focused-padding}
|
||||||
|
|
||||||
|
; urgent = Workspace with urgency hint set
|
||||||
|
label-urgent = %index%
|
||||||
|
label-urgent-background = ${colors.red}
|
||||||
|
label-urgent-padding = 2
|
||||||
|
|
||||||
|
|
||||||
|
[module/mpd]
|
||||||
|
type = internal/mpd
|
||||||
|
format-online = " <label-song> <icon-prev> <icon-stop> <toggle> <icon-next> "
|
||||||
|
format-online-background = ${colors.background}
|
||||||
|
format-online-prefix = " "
|
||||||
|
format-online-prefix-background = ${colors.purple}
|
||||||
|
|
||||||
|
icon-prev = " 玲"
|
||||||
|
icon-stop = " 栗"
|
||||||
|
icon-play = " 契"
|
||||||
|
icon-pause = " "
|
||||||
|
icon-next = " 怜"
|
||||||
|
|
||||||
|
label-song = " %artist% - %title% "
|
||||||
|
label-song-maxlen = 25
|
||||||
|
label-song-ellipsis = true
|
||||||
|
|
||||||
|
[module/xbacklight]
|
||||||
|
type = internal/xbacklight
|
||||||
|
|
||||||
|
format = <label> <bar>
|
||||||
|
label = BL
|
||||||
|
|
||||||
|
bar-width = 10
|
||||||
|
bar-indicator = |
|
||||||
|
bar-indicator-foreground = #fff
|
||||||
|
bar-indicator-font = 2
|
||||||
|
bar-fill = ─
|
||||||
|
bar-fill-font = 2
|
||||||
|
bar-fill-foreground = #9f78e1
|
||||||
|
bar-empty = ─
|
||||||
|
bar-empty-font = 2
|
||||||
|
bar-empty-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
|
||||||
|
[module/memory]
|
||||||
|
type = internal/memory
|
||||||
|
interval = 2
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-background = ${colors.red}
|
||||||
|
format-background = ${colors.background}
|
||||||
|
label = " %gb_used% "
|
||||||
|
|
||||||
|
|
||||||
|
[module/pulseaudio]
|
||||||
|
type = internal/pulseaudio
|
||||||
|
|
||||||
|
format-volume = <label-volume>
|
||||||
|
format-volume-background = ${colors.background}
|
||||||
|
format-volume-prefix = " 墳 "
|
||||||
|
format-volume-prefix-background = ${colors.cyan}
|
||||||
|
|
||||||
|
format-muted = <label-muted>
|
||||||
|
format-muted-background = ${colors.background}
|
||||||
|
format-muted-prefix = " 墳 "
|
||||||
|
format-muted-prefix-background = ${colors.cyan}
|
||||||
|
|
||||||
|
label-volume = " %percentage%% "
|
||||||
|
|
||||||
|
label-muted = " Muted "
|
||||||
|
|
||||||
|
|
||||||
|
[module/du_root]
|
||||||
|
type = internal/fs
|
||||||
|
interval = 25
|
||||||
|
|
||||||
|
mount-0 = /
|
||||||
|
|
||||||
|
label-mounted = " %percentage_used%% "
|
||||||
|
label-unmounted = " "
|
||||||
|
|
||||||
|
format-mounted = <label-mounted>
|
||||||
|
format-mounted-background = ${colors.background}
|
||||||
|
format-mounted-prefix = " "
|
||||||
|
format-mounted-prefix-background = ${colors.green}
|
||||||
|
|
||||||
|
format-unmounted = <label-unmounted>
|
||||||
|
format-unmounted-background = ${colors.background}
|
||||||
|
format-unmounted-prefix = " "
|
||||||
|
format-unmounted-prefix-background = ${colors.green}
|
||||||
|
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
interval = 5
|
||||||
|
|
||||||
|
date =
|
||||||
|
date-alt = " %Y-%m-%d"
|
||||||
|
|
||||||
|
time = "%H:%M "
|
||||||
|
time-alt = "%H:%M:%S "
|
||||||
|
|
||||||
|
format-background = ${colors.background}
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-foreground = ${colors.foreground}
|
||||||
|
format-prefix-background = ${colors.yellow}
|
||||||
|
|
||||||
|
label = %date% %time%
|
||||||
|
|
||||||
|
|
||||||
|
; vim:ft=dosini
|
|
@ -0,0 +1,51 @@
|
||||||
|
/**
|
||||||
|
* This theme is intended for a 8x2 items list menu with a headerbar.
|
||||||
|
*/
|
||||||
|
@import "shared/settings.rasi"
|
||||||
|
* {
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @foreground-list;
|
||||||
|
font: @text-font;
|
||||||
|
}
|
||||||
|
#window {
|
||||||
|
padding: @list-8-window-padding;
|
||||||
|
}
|
||||||
|
inputbar,
|
||||||
|
prompt,
|
||||||
|
textbox-prompt-colon,
|
||||||
|
entry {
|
||||||
|
background-color: @background-light;
|
||||||
|
}
|
||||||
|
#inputbar {
|
||||||
|
children: [ prompt, textbox-prompt-colon, entry ];
|
||||||
|
margin: @inputbar-margin;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#prompt {
|
||||||
|
padding: @prompt-padding;
|
||||||
|
background-color: @accent;
|
||||||
|
text-color: @background;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
str: " : : ";
|
||||||
|
padding: @apps-textbox-prompt-colon-padding;
|
||||||
|
}
|
||||||
|
#entry {
|
||||||
|
text-color: @accent;
|
||||||
|
padding: @entry-padding;
|
||||||
|
}
|
||||||
|
#element {
|
||||||
|
padding: @list-element-padding;
|
||||||
|
margin: @list-element-margin;
|
||||||
|
border: @list-element-border;
|
||||||
|
background-color: @background-light;
|
||||||
|
border-color: @background-light;
|
||||||
|
}
|
||||||
|
#element.selected {
|
||||||
|
background-color: @background-focus;
|
||||||
|
text-color: @accent;
|
||||||
|
border-color: @accent;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
* {
|
||||||
|
accent: #ffbf00;
|
||||||
|
background: #1c1c1c;
|
||||||
|
background-light: #1f1f1f;
|
||||||
|
background-focus: #282828;
|
||||||
|
foreground: #888888;
|
||||||
|
foreground-list: #bbbbbb;
|
||||||
|
on: #44ad4d;
|
||||||
|
off: #e34039;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
* {
|
||||||
|
accent: #728cbb;
|
||||||
|
background: #1c1c1c;
|
||||||
|
background-light: #1f1f1f;
|
||||||
|
background-focus: #282828;
|
||||||
|
foreground: #888888;
|
||||||
|
foreground-list: #bbbbbb;
|
||||||
|
on: #44ad4d;
|
||||||
|
off: #e34039;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
* {
|
||||||
|
accent: #cc3333;
|
||||||
|
background: #282a36;
|
||||||
|
background-light: #44475a;
|
||||||
|
background-focus: #282828;
|
||||||
|
foreground: #888888;
|
||||||
|
foreground-list: #bbbbbb;
|
||||||
|
on: #44ad4d;
|
||||||
|
off: #e34039;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
* {
|
||||||
|
accent: #83a598;
|
||||||
|
background: #282828;
|
||||||
|
background-light: #282828;
|
||||||
|
background-focus: #1d2021;
|
||||||
|
foreground: #ebdbb2;
|
||||||
|
foreground-list: #ebdbb2;
|
||||||
|
on: #83a598;
|
||||||
|
off: #fb4934;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
* {
|
||||||
|
accent: #6699ff;
|
||||||
|
background: #f2f2f2;
|
||||||
|
background-light: #e2e2e2;
|
||||||
|
background-focus: #d2d2d2;
|
||||||
|
foreground: #333333;
|
||||||
|
foreground-list: #222222;
|
||||||
|
on: #44ad4d;
|
||||||
|
off: #e34039;
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
/**
|
||||||
|
* Settings used in every rofi option menu:
|
||||||
|
* - i3layoutmenu
|
||||||
|
* - mpdmenu
|
||||||
|
* - powermenu
|
||||||
|
* - scrotmenu
|
||||||
|
*/
|
||||||
|
@import "settings.rasi"
|
||||||
|
* {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
font: @icon-font;
|
||||||
|
}
|
||||||
|
#window {
|
||||||
|
children: [ horibox ];
|
||||||
|
}
|
||||||
|
#horibox {
|
||||||
|
children: [ listview ];
|
||||||
|
}
|
||||||
|
#listview {
|
||||||
|
layout: horizontal;
|
||||||
|
}
|
||||||
|
#element {
|
||||||
|
padding: @option-element-padding;
|
||||||
|
background-color: @background-light;
|
||||||
|
}
|
||||||
|
#element.selected {
|
||||||
|
background-color: @accent;
|
||||||
|
text-color: @background;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
* {
|
||||||
|
/* General */
|
||||||
|
text-font: "Comfortaa 14";
|
||||||
|
text-font-mono: "RobotoMono Nerd Font Regular 14";
|
||||||
|
icon-font: "Hurmit Nerd Font Mono 60";
|
||||||
|
icon-font-small: "Hurmit Nerd Font Mono 24";
|
||||||
|
inputbar-margin: 4px 4px;
|
||||||
|
prompt-padding: 16px 20px;
|
||||||
|
entry-padding: 18px 16px 16px 0px;
|
||||||
|
/* list menus: appsmenu, networkmenu and nmvpnmenu */
|
||||||
|
list-element-padding: 20px;
|
||||||
|
list-element-margin: @inputbar-margin;
|
||||||
|
list-element-border: 0px 0px 0px 8px;
|
||||||
|
list-8-window-padding: 219px 360px;
|
||||||
|
/* option menus: i3layoutmenu, mpdmenu, powermenu and scrotmenu */
|
||||||
|
/**
|
||||||
|
* Values bellow are 'no-padding' ones for a size 60 (@icon-font) font, played around using this character: ■
|
||||||
|
* We then add add 100 actual padding around the icons.
|
||||||
|
* -12px 0px -19px -96px */
|
||||||
|
option-element-padding: 88px 100px 81px 4px;
|
||||||
|
option-3-window-padding: 415px 446px;
|
||||||
|
option-3-listview-spacing: 140px;
|
||||||
|
option-5-window-padding: 415px 183px;
|
||||||
|
option-5-listview-spacing: 77px;
|
||||||
|
option-6-listview-spacing: 50px;
|
||||||
|
/* appsmenu */
|
||||||
|
apps-textbox-prompt-colon-padding: 16px;
|
||||||
|
/* mpdmenu */
|
||||||
|
mpd-window-padding: 379px 111px;
|
||||||
|
mpd-inputbar-margin: 10px 0px;
|
||||||
|
mpd-prompt-padding: 14px 20px 10px 20px;
|
||||||
|
mpd-prompt-margin: 0px 0px 0px -2px;
|
||||||
|
mpd-element-border: 12px;
|
||||||
|
/* Every @option-element-padding minus @mpd-element-border */
|
||||||
|
mpd-element-padding: 76px 88px 69px -16px;
|
||||||
|
/* networkmenu */
|
||||||
|
network-textbox-prompt-colon-padding: 14px 10px 10px 10px;
|
||||||
|
/* nmvpnmenu */
|
||||||
|
nmvpn-textbox-prompt-colon-padding: @network-textbox-prompt-colon-padding;
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* Allows to change the settings of every menu simply by editing this file
|
||||||
|
*/
|
||||||
|
@import "colorschemes/dracula.rasi"
|
||||||
|
@import "resolutions/1920x1080.rasi"
|
||||||
|
|
||||||
|
#window {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
85
setup.sh
85
setup.sh
|
@ -21,16 +21,83 @@ else
|
||||||
/tmp/dein_installer.sh ~/.local/share/dein
|
/tmp/dein_installer.sh ~/.local/share/dein
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fish
|
# i3-gaps
|
||||||
FISH_DIR="$HOME/.config/fish"
|
I3_DIR="$HOME/.config/i3"
|
||||||
|
|
||||||
# Check if the FISH directory exists. If it does we skip this part of the script and inform the user.
|
# Check if the i3 directory exists. If it does we skip this part of the script and inform the user.
|
||||||
if [ -d $FISH_DIR ]; then
|
if [ -d $I3_DIR ]; then
|
||||||
echo "[FISH] Configuration directory exists. Skipping."
|
echo "[I3] Configuration directory exists. Skipping."
|
||||||
else
|
else
|
||||||
# Symlink the config
|
# Symlink the config
|
||||||
ln -s $DOTS_DIR/fish $FISH_DIR
|
ln -s $DOTS_DIR/i3 $I3_DIR
|
||||||
|
fi
|
||||||
# Install fisher plugins
|
|
||||||
fish -c "fisher add dracula/fish rafaelrinaldi/pure"
|
# Picom
|
||||||
|
PICOM_DIR="$HOME/.config/picom"
|
||||||
|
|
||||||
|
# Check if the picom directory exists. If it does we skip this part of the script and inform the user.
|
||||||
|
if [ -d $PICOM_DIR ]; then
|
||||||
|
echo "[PICOM] Configuration directory exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s $DOTS_DIR/picom $PICOM_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Polybar
|
||||||
|
POLYBAR_DIR="$HOME/.config/polybar"
|
||||||
|
|
||||||
|
# Check if the polybar directory exists. If it does we skip this part of the script and inform the user.
|
||||||
|
if [ -d $POLYBAR_DIR ]; then
|
||||||
|
echo "[POLYBAR] Configuration directory exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s $DOTS_DIR/polybar $POLYBAR_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dunst
|
||||||
|
DUNST_DIR="$HOME/.config/dunst"
|
||||||
|
|
||||||
|
# Check if the dunst directory exists. If it does we skip this part of the script and inform the user.'
|
||||||
|
if [ -d $DUNST_DIR ]; then
|
||||||
|
echo "[DUNST] Configuration directory exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s $DOTS_DIR/dunst $DUNST_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Kitty
|
||||||
|
KITTY_DIR="$HOME/.config/kitty"
|
||||||
|
|
||||||
|
# Check if the kitty directory exists. If it does we skip this part of the script and inform the user.
|
||||||
|
if [ -d $KITTY_DIR ]; then
|
||||||
|
echo "[Kitty] Configuration directory exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s $DOTS_DIR/kitty $KITTY_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# MPD
|
||||||
|
MPD_DIR="$HOME/.config/mpd"
|
||||||
|
|
||||||
|
# Check if the mpd directory exists. If it does we skip this part of the script and inform the user.
|
||||||
|
if [ -d $MPD_DIR ]; then
|
||||||
|
echo "[MPD] Configuration directory exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s $DOTS_DIR/mpd $MPD_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ZSH
|
||||||
|
ZSHRC="$HOME/.zshrc"
|
||||||
|
|
||||||
|
# Check if the zshrc file exists. If it does we skip this part of the script and inform the user.
|
||||||
|
if [ -f $ZSHRC ]; then
|
||||||
|
echo "[ZSH] Configuration file exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s "$DOTS_DIR/zsh/.zshrc" $ZSHRC
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rofi
|
||||||
|
ROFI_DIR="$HOME/.config/rofi"
|
||||||
|
|
||||||
|
# Check if the rofi directory exists. If it does we skip this part of the script and inform the user.
|
||||||
|
if [ -d $ROFI_DIR ]; then
|
||||||
|
echo "[RDF] Configuration file exists. Skipping."
|
||||||
|
else
|
||||||
|
ln -s $DOTS_DIR/rofi $ROFI_DIR
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
autoload -Uz compinit promptinit
|
||||||
|
compinit
|
||||||
|
promptinit
|
||||||
|
|
||||||
|
prompt suse
|
||||||
|
|
||||||
|
# Menu driven command completion.
|
||||||
|
zstyle ':completion:*' menu select
|
||||||
|
# Make ZSH complete aliases.
|
||||||
|
setopt COMPLETE_ALIASES
|
||||||
|
# Allow ZSH to complete in priviliged environments.
|
||||||
|
zstyle ':completion::complete:*' gain-privileges 1
|
||||||
|
|
||||||
|
# VI Mode
|
||||||
|
bindkey -v
|
||||||
|
|
||||||
|
# Function to download a full youtube playlist using youtube-dl.
|
||||||
|
function playlist-dl {
|
||||||
|
echo "Looking up playlist name..."
|
||||||
|
pl_line=$(youtube-dl --flat-playlist "$1" | grep "\[youtube:playlist\] playlist")
|
||||||
|
pl_name=$(echo ${pl_line:28} | awk -F ':' '{print $1}' | tr '/' ' ')
|
||||||
|
echo "Found playlist by name: $pl_name"
|
||||||
|
echo "Downloading it into directory: $pl_name"
|
||||||
|
|
||||||
|
mkdir "$pl_name"
|
||||||
|
cd "$pl_name"
|
||||||
|
youtube-dl --extract-audio --audio-format mp3 -o "%(title)s.%(ext)s" "$1"
|
||||||
|
cd ../
|
||||||
|
}
|
||||||
|
|
||||||
|
function compile {
|
||||||
|
gcc -no-pie -g -o $2 $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set EDITOR to be nvim.
|
||||||
|
export EDITOR=nvim
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias ls="lsd"
|
||||||
|
alias grep="grep --color"
|
||||||
|
alias p="sudo pacman"
|
||||||
|
alias vim="nvim"
|
||||||
|
alias vi="nvim"
|
||||||
|
|
||||||
|
# Add fish like syntax highlighting to zsh.
|
||||||
|
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
Loading…
Reference in New Issue