diff --git a/dunst/dunstrc b/dunst/dunstrc new file mode 100644 index 0000000..b253ec4 --- /dev/null +++ b/dunst/dunstrc @@ -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: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s\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 diff --git a/fish/config.fish b/fish/config.fish index a7173c0..c10dc49 100644 --- a/fish/config.fish +++ b/fish/config.fish @@ -2,6 +2,8 @@ set --export SHELL /bin/fish set --export EDITOR "nvim" 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" function playlist-dl diff --git a/fish/fish_variables b/fish/fish_variables index 25d8d15..e68b33e 100644 --- a/fish/fish_variables +++ b/fish/fish_variables @@ -34,6 +34,7 @@ SETUVAR fish_pager_color_completion:\x1d SETUVAR fish_pager_color_description:B3A06D\x1eyellow SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_user_paths:/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin\x1e/home/kalle/\x2egem/ruby/2\x2e7\x2e0/bin SETUVAR pure_begin_prompt_with_current_directory:true SETUVAR pure_color_command_duration:pure_color_warning SETUVAR pure_color_current_directory:pure_color_primary diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..cf7a2fb --- /dev/null +++ b/i3/config @@ -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" + diff --git a/kitty/INSTALL.md b/kitty/INSTALL.md new file mode 100644 index 0000000..324bd11 --- /dev/null +++ b/kitty/INSTALL.md @@ -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`. diff --git a/kitty/dracula.conf b/kitty/dracula.conf new file mode 100644 index 0000000..8bee635 --- /dev/null +++ b/kitty/dracula.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 diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..51c6572 --- /dev/null +++ b/kitty/kitty.conf @@ -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 diff --git a/mpd/mpd.conf b/mpd/mpd.conf new file mode 100644 index 0000000..f8e6763 --- /dev/null +++ b/mpd/mpd.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 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" +# +############################################################################### diff --git a/picom/picom.conf b/picom/picom.conf new file mode 100644 index 0000000..3e28a64 --- /dev/null +++ b/picom/picom.conf @@ -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; } +}; diff --git a/polybar/config b/polybar/config new file mode 100644 index 0000000..afc6de2 --- /dev/null +++ b/polybar/config @@ -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 = +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 = " " +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 =