mirror of
https://codeberg.org/andyscott/dotfiles.git
synced 2024-09-07 22:08:08 -04:00
Initial commit
This commit is contained in:
commit
fe6c0ce052
29 changed files with 3909 additions and 0 deletions
16
LICENSE
Normal file
16
LICENSE
Normal file
|
@ -0,0 +1,16 @@
|
|||
MIT No Attribution
|
||||
|
||||
Copyright 2022 Andrew Scott
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software
|
||||
without restriction, including without limitation the rights to use, copy, modify,
|
||||
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
155
dot_Xresources
Normal file
155
dot_Xresources
Normal file
|
@ -0,0 +1,155 @@
|
|||
! -----------------------------------------------------------------------------
|
||||
! Colors: gruvbox-dark, forest night, zenburn
|
||||
! Source: https://github.com/morhetz/gruvbox-generalized
|
||||
! https://github.com/jef/forest-night-xresources
|
||||
! https://github.com/jnurmine/Zenburn
|
||||
! -----------------------------------------------------------------------------
|
||||
|
||||
! Laptop screen DPI
|
||||
Xft.dpi: 216
|
||||
|
||||
Xft.autohint: 0
|
||||
Xft.lcdfilter: lcddefault
|
||||
Xft.hintstyle: hintfull
|
||||
Xft.hinting: 1
|
||||
Xft.antialias: 1
|
||||
Xft.rgba: rgb
|
||||
|
||||
!---------!
|
||||
! Gruvbox !
|
||||
! --------!
|
||||
|
||||
! hard contrast: *background: #1d2021
|
||||
! medium contrast: *background: #282828
|
||||
! soft contrast: *background: #32302f
|
||||
! *background: #1d2021
|
||||
! *foreground: #ebdbb2
|
||||
! ! Black + DarkGrey
|
||||
! *color0: #282828
|
||||
! *color8: #928374
|
||||
! ! DarkRed + Red
|
||||
! *color1: #cc241d
|
||||
! *color9: #fb4934
|
||||
! ! DarkGreen + Green
|
||||
! *color2: #98971a
|
||||
! *color10: #b8bb26
|
||||
! ! DarkYellow + Yellow
|
||||
! *color3: #d79921
|
||||
! *color11: #fabd2f
|
||||
! ! DarkBlue + Blue
|
||||
! *color4: #458588
|
||||
! *color12: #83a598
|
||||
! ! DarkMagenta + Magenta
|
||||
! *color5: #b16286
|
||||
! *color13: #d3869b
|
||||
! ! DarkCyan + Cyan
|
||||
! *color6: #689d6a
|
||||
! *color14: #8ec07c
|
||||
! ! LightGrey + White
|
||||
! *color7: #a89984
|
||||
! *color15: #ebdbb2
|
||||
|
||||
!------------!
|
||||
! Everforest !
|
||||
!------------!
|
||||
|
||||
! special
|
||||
*.foreground: #d8caac
|
||||
*.background: #323d43
|
||||
*.cursorColor: #7fbbb3
|
||||
! black
|
||||
*.color0: #4a555b
|
||||
*.color8: #525c62
|
||||
! red
|
||||
*.color1: #e26c6e
|
||||
*.color9: #e68183
|
||||
! green
|
||||
*.color2: #9bb86f
|
||||
*.color10: #a7c080
|
||||
! yellow
|
||||
*.color3: #d5b26b
|
||||
*.color11: #dbbc7f
|
||||
! blue
|
||||
*.color4: #6eb2a9
|
||||
*.color12: #7fbbb3
|
||||
! magenta
|
||||
*.color5: #cf87a9
|
||||
*.color13: #d699b6
|
||||
! cyan
|
||||
*.color6: #72b783
|
||||
*.color14: #83c092
|
||||
! white
|
||||
*.color7: #d0bf9b
|
||||
*.color15: #d8caac
|
||||
|
||||
!---------!
|
||||
! Zenburn !
|
||||
!---------!
|
||||
|
||||
! *background: #3f3f3f
|
||||
! *foreground: #dcdccc
|
||||
! ! Black + DarkGrey
|
||||
! *color0: #282828
|
||||
! *color8: #709080
|
||||
! ! DarkRed + Red
|
||||
! *color1: #705050
|
||||
! *color9: #dca3a3
|
||||
! ! DarkGreen + Green
|
||||
! *color2: #60b48a
|
||||
! *color10: #c3bf9f
|
||||
! ! DarkYellow + Yellow
|
||||
! *color3: #f0deae
|
||||
! *color11: #dfcf9f
|
||||
! ! DarkBlue + Blue
|
||||
! *color4: #506070
|
||||
! *color12: #94bff3
|
||||
! ! DarkMagenta + Magenta
|
||||
! *color5: #dc8cc3
|
||||
! *color13: #ec93d3
|
||||
! ! DarkCyan + Cyan
|
||||
! *color6: #8cd0d3
|
||||
! *color14: #93e0e3
|
||||
! ! LightGrey + White
|
||||
! *color7: #dcdccc
|
||||
! *color15: #ffffff
|
||||
|
||||
!!! urxvt
|
||||
URxvt.perl-ext-common: default,matcher
|
||||
URxvt*buffered: true
|
||||
URxvt*saveLines: 5000
|
||||
URxvt*cursorBlink: true
|
||||
URxvt*borderless: 1
|
||||
URxvt*internalBorder: 20
|
||||
URxvt*scrollBar: false
|
||||
URxvt.url-launcher: /usr/bin/xdg-open
|
||||
URxvt.matcher.button: 1
|
||||
URxvt.clipboard.autocopy: true
|
||||
|
||||
! do not scroll with output
|
||||
URxvt*scrollTtyOutput: false
|
||||
! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
|
||||
URxvt*scrollWithBuffer: true
|
||||
! scroll back to the bottom on keypress
|
||||
URxvt*scrollTtyKeypress: true
|
||||
! disable scrollback buffer in secondary screen (allows scrolling pager when using 'less' etc)
|
||||
URxvt.secondaryScreen: 1
|
||||
URxvt.secondaryScroll: 0
|
||||
! Disable printing the terminal contents when pressing PrintScreen.
|
||||
URxvt.print-pipe: "cat > /dev/null"
|
||||
!! copy/paste
|
||||
! disable default ctrl-shift binding
|
||||
URxvt.iso14755: false
|
||||
URxvt.iso14755_52: false
|
||||
! disable default copy/paste bindings
|
||||
URxvt.keysym.Control-Meta-c: builtin-string:
|
||||
URxvt.keysym.Control-Meta-v: builtin-string:
|
||||
! new copy/paste bindings
|
||||
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||
!! font
|
||||
!URxvt.letterSpace: -1
|
||||
URxvt.font: xft:Hack:regular:size=12, \
|
||||
xft:Font Awesome 6 Brands:Regular:size=10, \
|
||||
xft:Font Awesome 6 Free:Solid:size=10, \
|
||||
xft:Font Awesome 6 Free:Regular:size=10
|
||||
|
12
dot_bash_profile
Normal file
12
dot_bash_profile
Normal file
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# ~/.bash_profile
|
||||
#
|
||||
. ~/.profile
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
|
||||
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
||||
exec startx
|
||||
fi
|
||||
|
||||
export EDITOR=emacs
|
17
dot_bashrc
Normal file
17
dot_bashrc
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
PS1='[\u@\h \W]\$ '
|
||||
|
||||
alias nv=nvim
|
||||
alias r="urxvt -name Ranger -e ranger & disown"
|
||||
alias kssh="/usr/bin/kitty +kitten ssh"
|
||||
|
||||
neofetch
|
||||
|
||||
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh
|
65
dot_config/bspwm/executable_bspwmrc
Normal file
65
dot_config/bspwm/executable_bspwmrc
Normal file
|
@ -0,0 +1,65 @@
|
|||
#!/bin/bash
|
||||
|
||||
bspc monitor eDP-1 -d 1 2 3 4 5 6 7 8 9 10
|
||||
|
||||
bspc config border_width 2
|
||||
bspc config window_gap 10
|
||||
bspc config top_padding 70
|
||||
bspc config bottom_padding 0
|
||||
bspc config split_ratio 0.50
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
||||
|
||||
bspc rule -a Galculator state=floating
|
||||
bspc rule -a vlc state=floating
|
||||
bspc rule -a Blueman-manager state=floating
|
||||
bspc rule -a Blueberry.py state=floating
|
||||
bspc rule -a Bitwarden state=floating
|
||||
bspc rule -a Leafpad state=floating
|
||||
bspc rule -a KeePassXC state=floating
|
||||
|
||||
bspc rule -a firefox desktop='^1' follow=on
|
||||
bspc rule -a Chromium desktop='^2' follow=on
|
||||
bspc rule -a Vivaldi-stable desktop='^2' follow=on
|
||||
bspc rule -a Evince desktop='4' follow=on
|
||||
bspc rule -a Soffice desktop='^4' follow=on
|
||||
bspc rule -a Simple-scan='^4' follow=on
|
||||
bspc rule -a Xsane desktop='^4' follow=on state=floating
|
||||
bspc rule -a Alacritty desktop='^6' follow=on
|
||||
bspc rule -a kitty desktop='^6' follow=on
|
||||
bspc rule -a URxvt desktop='^6' follow=on
|
||||
bspc rule -a URxvt:Ranger desktop='^3' follow=on
|
||||
bspc rule -a Thunar desktop='3' follow=on
|
||||
bspc rule -a Steam desktop='^5' follow=on state=floating
|
||||
bspc rule -a Lutris desktop='^5' follow=on state=floating
|
||||
bspc rule -a origin.exe desktop='^5' state=floating
|
||||
bspc rule -a Emacs desktop='^7' follow=on state=fullscreen
|
||||
bspc rule -a Dino desktop='^8'
|
||||
bspc rule -a Gajim desktop='^8'
|
||||
bspc rule -a discord desktop='^8'
|
||||
bspc rule -a Element desktop='^9'
|
||||
bspc rule -a Slack desktop='^9'
|
||||
bspc rule -a teams-for-linux desktop='^9'
|
||||
bspc rule -a thunderbird desktop='^10'
|
||||
bspc rule -a tutanota-desktop desktop='^10'
|
||||
|
||||
### Focus on 1st workspace by default
|
||||
bspc desktop -f 1
|
||||
|
||||
### Autostart
|
||||
grep -x sxhkd > /dev/null || sxhkd &
|
||||
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||
xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock &
|
||||
xidlehook --not-when-audio --not-when-fullscreen --timer 120 "killall -q redshift && xrandr --output eDP-1 --brightness .1" "xrandr --output eDP-1 --brightness 1 && redshift -r & disown" --timer 480 "xset s activate" "xrandr --output eDP-1 --brightness 1 && redshift -r & disown" &
|
||||
xsettingsd &
|
||||
sh ~/.fehbg &
|
||||
pa-notify -t 3 &
|
||||
#$HOME/.local/bin/single-polybar-launcher &
|
||||
$HOME/.local/bin/tint2-launcher &
|
||||
redshift -r &
|
||||
picom &
|
||||
dunst &
|
||||
dex -a &
|
||||
cbatticon -u 20 -i standard -c "systemctl hibernate" &
|
||||
birdtray &
|
||||
sleep 10 && nextcloud --background &
|
414
dot_config/dunst/dunstrc
Normal file
414
dot_config/dunst/dunstrc
Normal file
|
@ -0,0 +1,414 @@
|
|||
[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 = mouse
|
||||
|
||||
# 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-30+50"
|
||||
|
||||
# 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 = 0
|
||||
|
||||
# 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 = 4
|
||||
|
||||
# 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 = 3
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#222222"
|
||||
|
||||
# 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 = Hack 11
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.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. Dunstwill 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
|
||||
|
||||
# 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 = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = off
|
||||
|
||||
# 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/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/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
|
||||
|
||||
### 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 action of 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.
|
||||
mouse_left_click = do_action
|
||||
mouse_middle_click = close_all
|
||||
mouse_right_click = close_current
|
||||
|
||||
# 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 = "#222222"
|
||||
foreground = "#555555"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#222222"
|
||||
foreground = "#dfdfdf"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#222222"
|
||||
foreground = "#8a4644"
|
||||
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
|
||||
|
41
dot_config/kitty/everforest-dark.conf
Normal file
41
dot_config/kitty/everforest-dark.conf
Normal file
|
@ -0,0 +1,41 @@
|
|||
# https://github.com/sainnhe/everforest
|
||||
# https://gist.github.com/sophiabrandt/f013c5980b5f89cd068d8f7f47da2e1c
|
||||
|
||||
foreground #d8cacc
|
||||
background #323d43
|
||||
selection_foreground #3c474d
|
||||
selection_background #525c62
|
||||
url_color #415c6d
|
||||
cursor #7fbbb3
|
||||
|
||||
# black
|
||||
color0 #4a555b
|
||||
color8 #525c62
|
||||
|
||||
# red
|
||||
color1 #e26c6e
|
||||
color9 #e68183
|
||||
|
||||
# green
|
||||
color2 #9bb86f
|
||||
color10 #a7c080
|
||||
|
||||
# yellow
|
||||
color3 #d5b26b
|
||||
color11 #dbbc7f
|
||||
|
||||
# blue
|
||||
color4 #6eb2a9
|
||||
color12 #7fbbb3
|
||||
|
||||
# magenta
|
||||
color5 #cf87a9
|
||||
color13 #d699b6
|
||||
|
||||
# cyan
|
||||
color6 #72b783
|
||||
color14 #83c092
|
||||
|
||||
# white
|
||||
color7 #d0bf9b
|
||||
color15 #d8caac
|
38
dot_config/kitty/gruvbox.conf
Normal file
38
dot_config/kitty/gruvbox.conf
Normal file
|
@ -0,0 +1,38 @@
|
|||
foreground #ebdbb2
|
||||
# background: hard contrast 1d2021, medium 282828, soft 32302f
|
||||
background #1d2021
|
||||
selection_foreground #655b53
|
||||
selection_background #ebdbb2
|
||||
url_color #d65c0d
|
||||
|
||||
# black
|
||||
color0 #272727
|
||||
color8 #928373
|
||||
|
||||
# red
|
||||
color1 #cc231c
|
||||
color9 #fb4833
|
||||
|
||||
# green
|
||||
color2 #989719
|
||||
color10 #b8ba25
|
||||
|
||||
# yellow
|
||||
color3 #d79920
|
||||
color11 #fabc2e
|
||||
|
||||
# blue
|
||||
color4 #448488
|
||||
color12 #83a597
|
||||
|
||||
# magenta
|
||||
color5 #b16185
|
||||
color13 #d3859a
|
||||
|
||||
# cyan
|
||||
color6 #689d69
|
||||
color14 #8ec07b
|
||||
|
||||
# white
|
||||
color7 #a89983
|
||||
color15 #ebdbb2
|
10
dot_config/kitty/kitty.conf
Normal file
10
dot_config/kitty/kitty.conf
Normal file
|
@ -0,0 +1,10 @@
|
|||
font_family Hack
|
||||
font_size 10
|
||||
cursor_shape block
|
||||
cursor_stop_blinking_after 10
|
||||
shell_integration enabled no-cursor
|
||||
enable_audio_bell no
|
||||
#background_opacity 0.7
|
||||
window_padding_width 20
|
||||
#background #202020
|
||||
include everforest-dark.conf
|
25
dot_config/kitty/zenburn.conf
Normal file
25
dot_config/kitty/zenburn.conf
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Zenburn by jnurmine, https://github.com/jnurmine/Zenburn
|
||||
# This work is licensed under the terms of the GNU GPL license.
|
||||
# For a copy, see http://www.gnu.org/licenses/gpl.html.
|
||||
|
||||
background #3f3f3f
|
||||
foreground #dcdccc
|
||||
cursor #73635a
|
||||
selection_background #21322f
|
||||
color0 #4d4d4d
|
||||
color8 #709080
|
||||
color1 #b05050
|
||||
color9 #dca3a3
|
||||
color2 #60b48a
|
||||
color10 #c3bf9f
|
||||
color3 #f0deae
|
||||
color11 #dfcf9f
|
||||
color4 #506f8f
|
||||
color12 #94bff3
|
||||
color5 #dc8cc3
|
||||
color13 #ec93d3
|
||||
color6 #8cd0d3
|
||||
color14 #93e0e3
|
||||
color7 #dcdccc
|
||||
color15 #ffffff
|
||||
selection_foreground #3f3f3f
|
417
dot_config/picom/picom.conf
Normal file
417
dot_config/picom/picom.conf
Normal file
|
@ -0,0 +1,417 @@
|
|||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||
# shadow-color = "#000000"
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||
# clip-shadow-above = []
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = true;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
fade-delta = 5
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
fade-exclude = [ "class_g = 'xsecurelock'" ];
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 0.95;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 0.9;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should never be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
|
||||
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
|
||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||
# round the corners of windows. Does not interact well with
|
||||
# `transparent-clipping`.
|
||||
corner-radius = 0
|
||||
|
||||
# Exclude conditions for rounded corners.
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
#
|
||||
# blur-strength = 5
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ""
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
# backend = "glx"
|
||||
backend = "glx";
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true;
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true;
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. This usually means windows from the same application
|
||||
# will be considered focused or unfocused at the same time.
|
||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
glx-no-stencil = true;
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn 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
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||
# in the source tree for examples.
|
||||
#
|
||||
# glx-fshader-win = ""
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = "/path/to/your/log/file"
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = "/path/to/your/log/file"
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# clip-shadow-above:::
|
||||
# Controls wether shadows that would have been drawn above the window should
|
||||
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.9; }
|
||||
dropdown_menu = { opacity = 0.9; }
|
||||
# menu = { shadow = false; };
|
||||
# dropdown_menu = { shadow = false; };
|
||||
# popup_menu = { shadow = false; };
|
||||
# utility = { shadow = false; };
|
||||
};
|
21
dot_config/polybar/colors.ini
Normal file
21
dot_config/polybar/colors.ini
Normal file
|
@ -0,0 +1,21 @@
|
|||
[color]
|
||||
background = ${xrdb:background}
|
||||
foreground = ${xrdb:foreground}
|
||||
sep = ${xrdb:color8}
|
||||
|
||||
white = ${xrdb:color15}
|
||||
black = ${xrdb:color0}
|
||||
dark-grey = ${xrdb:color8}
|
||||
light-grey = ${xrdb:color7}
|
||||
dark-red = ${xrdb:color1}
|
||||
red = ${xrdb:color9}
|
||||
dark-green = ${xrdb:color2}
|
||||
green = ${xrdb:color10}
|
||||
dark-yellow = ${xrdb:color3}
|
||||
yellow = ${xrdb:color11}
|
||||
dark-blue = ${xrdb:color4}
|
||||
blue = ${xrdb:color12}
|
||||
dark-magenta = ${xrdb:color5}
|
||||
magenta = ${xrdb:color13}
|
||||
dark-cyan = ${xrdb:color6}
|
||||
cyan = ${xrdb:color14}
|
132
dot_config/polybar/config.ini
Normal file
132
dot_config/polybar/config.ini
Normal file
|
@ -0,0 +1,132 @@
|
|||
[global/wm]
|
||||
include-file = ~/.config/polybar/colors.ini
|
||||
include-file = ~/.config/polybar/modules.ini
|
||||
include-file = ~/.config/polybar/custom_modules.ini
|
||||
|
||||
margin-bottom = 0
|
||||
margin-top = 0
|
||||
|
||||
[bar/one]
|
||||
monitor = eDP-1
|
||||
monitor-fallback =
|
||||
monitor-strict = false
|
||||
enable-ipc = true
|
||||
override-redirect = true
|
||||
bottom = false
|
||||
fixed-center = true
|
||||
width = 100%
|
||||
height = 72
|
||||
offset-x = 0%
|
||||
offset-y = 0%
|
||||
dpi-x = 216
|
||||
dpi-y = 216
|
||||
background = ${color.background}
|
||||
foreground = ${color.foreground}
|
||||
radius-top = 0.0
|
||||
radius-bottom = 0.0
|
||||
line-size = 0
|
||||
line-color = ${color.background}
|
||||
border-bottom-size = 0
|
||||
border-bottom-color = ${color.foreground}
|
||||
padding = 1
|
||||
module-margin-left = 1
|
||||
module-margin-right = 0
|
||||
seperator =
|
||||
dim-value = 1.0
|
||||
locale = en_US.UTF-8
|
||||
|
||||
font-0 = Hack:size=10;3
|
||||
font-1 = Font Awesome 6 Free:style=Solid:size=12;3
|
||||
font-2 = Font Awesome 6 Free:style=Regular:size=12;3
|
||||
font-3 = Font Awesome 6 Brands:style=Regular:size=12;3
|
||||
|
||||
modules-left = workspaces sep title
|
||||
modules-center = spotify
|
||||
modules-right = keyboard sep pulseaudio-control sep battery0 sep date sep powermenu
|
||||
|
||||
tray-position = right
|
||||
tray-detached = false
|
||||
tray-maxsize = 40
|
||||
tray-background = ${color.background}
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
tray-padding = 0
|
||||
tray-scale = 1.0
|
||||
|
||||
wm-name = bspwm
|
||||
wm-restack = bspwm
|
||||
scroll-up = bspwm-desknext
|
||||
scroll-down = bspwm-deskprev
|
||||
click-left =
|
||||
click-middle =
|
||||
click-right =
|
||||
;scroll-up = bspc desktop -f prev.local
|
||||
;scroll-down = bspc desktop -f next.local
|
||||
double-click-left =
|
||||
double-click-middle =
|
||||
double-click-right =
|
||||
cursor-click =
|
||||
cursor-scroll =
|
||||
|
||||
[bar/two]
|
||||
monitor = eDP-1
|
||||
monitor-fallback =
|
||||
monitor-strict = false
|
||||
enable-ipc = true
|
||||
override-redirect = true
|
||||
bottom = true
|
||||
fixed-center = true
|
||||
width = 100%
|
||||
height = 32
|
||||
offset-x = 0%
|
||||
offset-y = 0%
|
||||
background = ${color.background}
|
||||
foreground = ${color.foreground}
|
||||
radius-top = 0.0
|
||||
radius-bottom = 0.0
|
||||
line-size = 0
|
||||
line-color = ${color.background}
|
||||
border-bottom-size = 0
|
||||
border-bottom-color = ${color.foreground}
|
||||
padding = 1
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
seperator =
|
||||
dim-value = 1.0
|
||||
locale = en_US.UTF-8
|
||||
|
||||
font-0 = Hack:size=10;3
|
||||
font-1 = Font Awesome 5 Free:style=Solid:size=12;3
|
||||
font-2 = Font Awesome 5 Free:style=Regular:size=12;3
|
||||
font-3 = Font Awesome 5 Brands:style=Regular:size=12;3
|
||||
|
||||
modules-left = workspaces sep title
|
||||
modules-center = spotify
|
||||
modules-right = cpu sep memory sep filesystem
|
||||
|
||||
tray-position = none
|
||||
tray-detached = false
|
||||
tray-maxsize = 16
|
||||
tray-background = ${color.background}
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
tray-padding = 0
|
||||
tray-scale = 1.0
|
||||
|
||||
wm-name = bspwm
|
||||
wm-restack = bspwm
|
||||
scroll-up = bspwm-desknext
|
||||
scroll-down = bspwm-deskprev
|
||||
click-left =
|
||||
click-middle =
|
||||
click-right =
|
||||
;scroll-up = bspc desktop -f prev.local
|
||||
;scroll-down = bspc desktop -f next.local
|
||||
double-click-left =
|
||||
double-click-middle =
|
||||
double-click-right =
|
||||
cursor-click =
|
||||
cursor-scroll =
|
||||
|
||||
[settings]
|
||||
screenchange-reload = false
|
107
dot_config/polybar/custom_modules.ini
Normal file
107
dot_config/polybar/custom_modules.ini
Normal file
|
@ -0,0 +1,107 @@
|
|||
[module/sep]
|
||||
type = custom/text
|
||||
content = |
|
||||
|
||||
content-foreground = ${color.sep}
|
||||
|
||||
[module/powermenu]
|
||||
type = custom/menu
|
||||
|
||||
; If true, <label-toggle> will be to the left of the menu items (default).
|
||||
; If false, it will be on the right of all the items.
|
||||
expand-right = true
|
||||
|
||||
; "menu-LEVEL-N" has the same properties as "label-NAME" with
|
||||
; the additional "exec" property
|
||||
;
|
||||
; Available exec commands:
|
||||
; menu-open-LEVEL
|
||||
; menu-close
|
||||
; Other commands will be executed using "/usr/bin/env sh -c $COMMAND"
|
||||
|
||||
menu-0-0 = " Log Out |"
|
||||
menu-0-0-exec = menu-open-1
|
||||
menu-0-1 = " Suspend |"
|
||||
menu-0-1-exec = menu-open-2
|
||||
menu-0-2 = " Reboot |"
|
||||
menu-0-2-exec = menu-open-3
|
||||
menu-0-3 = " Shutdown "
|
||||
menu-0-3-exec = menu-open-4
|
||||
|
||||
menu-1-0 = " Back |"
|
||||
menu-1-0-exec = menu-open-0
|
||||
menu-1-1 = " Log Out "
|
||||
menu-1-1-exec = loginctl kill-session $XDG_SESSION_ID
|
||||
|
||||
menu-2-0 = " Back |"
|
||||
menu-2-0-exec = menu-open-0
|
||||
menu-2-1 = " Suspend "
|
||||
menu-2-1-exec = systemctl suspend
|
||||
menu-2-2 = " Suspend-then-Hibernate "
|
||||
menu-2-2-exec = systemctl suspend-then-hibernate
|
||||
menu-2-3 = " Hibernate "
|
||||
menu-2-3-exec = systemctl hibernate
|
||||
|
||||
menu-3-0 = " Back |"
|
||||
menu-3-0-exec = menu-open-0
|
||||
menu-3-1 = " Reboot "
|
||||
menu-3-1-exec = systemctl reboot
|
||||
|
||||
menu-4-0 = " Back |"
|
||||
menu-4-0-exec = menu-open-0
|
||||
menu-4-1 = " Shutdown "
|
||||
menu-4-1-exec = systemctl poweroff
|
||||
|
||||
|
||||
; Available tags:
|
||||
; <label-toggle> (default) - gets replaced with <label-(open|close)>
|
||||
; <menu> (default)
|
||||
; Note that if you use <label-toggle> you must also include
|
||||
; the definition for <label-open>
|
||||
|
||||
format = <label-toggle><menu>
|
||||
|
||||
label-open =
|
||||
label-open-foreground = ${color.dark-cyan}
|
||||
label-open-padding = 1
|
||||
label-close =
|
||||
label-close-foreground = ${color.red}
|
||||
label-close-padding = 1
|
||||
|
||||
; Optional item separator
|
||||
; Default: none
|
||||
;label-separator = " | "
|
||||
;label-separator-foreground = ${color.foreground}
|
||||
;label-separator-background = ${color.background-alt}
|
||||
|
||||
;;label-open-foreground = ${color.foreground}
|
||||
;;label-close-foreground = ${color.background}
|
||||
|
||||
[module/pulseaudio-control]
|
||||
type = custom/script
|
||||
tail = true
|
||||
;format-underline = ${colors.cyan}
|
||||
;label-padding = 2
|
||||
;label-foreground = ${color.foreground}
|
||||
label-foreground = ${color.blue}
|
||||
|
||||
# You can copy-paste your options for each possible action, which is more
|
||||
# trouble-free but repetitive, or apply only the relevant ones (for example
|
||||
# --sink-blacklist is only needed for next-sink).
|
||||
exec = pulseaudio-control --icons-volume " , , " --icon-muted " " --node-nicknames-from "device.profile.description" listen
|
||||
#exec = pulseaudio-control --icons-volume " , , " --icon-muted " " --sink-nicknames-from "device.description" --sink-nickname "alsa_output.pci-0000_00_1b.0.analog-stereo: Speakers" --sink-nickname "alsa_output.usb-Kingston_HyperX_Virtual_Surround_Sound_00000000-00.analog-stereo: Headphones" listen
|
||||
click-right = exec pavucontrol &
|
||||
click-left = pulseaudio-control togmute
|
||||
click-middle = pulseaudio-control next-sink
|
||||
#click-middle = pulseaudio-control --sink-blacklist "alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2" next-sink
|
||||
scroll-up = pulseaudio-control --volume-max 130 up
|
||||
scroll-down = pulseaudio-control --volume-max 130 down
|
||||
|
||||
[module/spotify]
|
||||
type = custom/script
|
||||
interval = 1
|
||||
format-prefix = " "
|
||||
format = <label>
|
||||
exec = python /usr/bin/polybar-spotify -f '{artist}: {song}'
|
||||
format-prefix-foreground = ${color.dark-green}
|
||||
;format-underline = ${color.green}
|
897
dot_config/polybar/modules.ini
Normal file
897
dot_config/polybar/modules.ini
Normal file
|
@ -0,0 +1,897 @@
|
|||
[module/alsa]
|
||||
type = internal/alsa
|
||||
|
||||
; Soundcard to be used
|
||||
; Usually in the format hw:# where # is the card number
|
||||
; You can find the different card numbers in `/proc/asound/cards`
|
||||
master-soundcard = default
|
||||
speaker-soundcard = default
|
||||
headphone-soundcard = default
|
||||
|
||||
; Name of the master, speaker and headphone mixers
|
||||
; Use the following command to list available mixer controls:
|
||||
; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p"
|
||||
; If master, speaker or headphone-soundcard isn't the default,
|
||||
; use `amixer -c # scontrols` instead where # is the number
|
||||
; of the master, speaker or headphone soundcard respectively
|
||||
;
|
||||
; Default: Master
|
||||
master-mixer = Master
|
||||
|
||||
; Optionally define speaker and headphone mixers
|
||||
; Default: none
|
||||
;speaker-mixer = Speaker
|
||||
; Default: none
|
||||
;headphone-mixer = Headphone
|
||||
|
||||
; NOTE: This is required if headphone_mixer is defined
|
||||
; Use the following command to list available device controls
|
||||
; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort
|
||||
; You may also need to use `amixer -c # controls` as above for the mixer names
|
||||
; Default: none
|
||||
;headphone-id = 9
|
||||
|
||||
; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear
|
||||
; Default: false
|
||||
mapped = true
|
||||
|
||||
; Interval for volume increase/decrease (in percent points)
|
||||
; Default: 5
|
||||
interval = 5
|
||||
|
||||
; Available tags:
|
||||
; <label-volume> (default)
|
||||
; <ramp-volume>
|
||||
; <bar-volume>
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
|
||||
; Available tags:
|
||||
; <label-muted> (default)
|
||||
; <ramp-volume>
|
||||
; <bar-volume>
|
||||
format-muted = <label-muted>
|
||||
format-muted-prefix =
|
||||
format-muted-prefix-foreground = ${color.red}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
label-volume = %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
label-muted = " Muted"
|
||||
label-muted-foreground = ${color.sep}
|
||||
|
||||
; Only applies if <ramp-volume> is used
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
ramp-volume-foreground = ${color.blue}
|
||||
|
||||
; If defined, it will replace <ramp-volume> when
|
||||
; headphones are plugged in to `headphone_control_numid`
|
||||
; If undefined, <ramp-volume> will be used for both
|
||||
; Only applies if <ramp-volume> is used
|
||||
ramp-headphones-0 =
|
||||
ramp-headphones-1 =
|
||||
ramp-headphones-foreground = ${color.blue}
|
||||
|
||||
[module/battery0]
|
||||
type = internal/battery
|
||||
|
||||
; This is useful in case the battery never reports 100% charge
|
||||
full-at = 99
|
||||
|
||||
; Use the following command to list batteries and adapters:
|
||||
; $ ls -1 /sys/class/power_supply/
|
||||
battery = BAT0
|
||||
adapter = AC
|
||||
|
||||
; If an inotify event haven't been reported in this many
|
||||
; seconds, manually poll for new values.
|
||||
;
|
||||
; Needed as a fallback for systems that don't report events
|
||||
; on sysfs/procfs.
|
||||
;
|
||||
; Disable polling by setting the interval to 0.
|
||||
;
|
||||
; Default: 5
|
||||
poll-interval = 2
|
||||
|
||||
; see "man date" for details on how to format the time string
|
||||
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||
; Default: %H:%M:%S
|
||||
time-format = %H:%M
|
||||
|
||||
; Available tags:
|
||||
; <label-charging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-charging>
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
; Available tags:
|
||||
; <label-discharging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-discharging>
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
|
||||
; Available tags:
|
||||
; <label-full> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
format-full = <label-full>
|
||||
format-full-prefix =
|
||||
format-full-prefix-foreground = ${color.dark-green}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
; %time%
|
||||
; %consumption% (shows current charge rate in watts)
|
||||
label-charging = %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
; %time%
|
||||
; %consumption% (shows current discharge rate in watts)
|
||||
label-discharging = %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
label-full = " Full"
|
||||
|
||||
; Only applies if <ramp-capacity> is used
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-foreground = ${color.dark-yellow}
|
||||
|
||||
; Only applies if <bar-capacity> is used
|
||||
;bar-capacity-width = 10
|
||||
|
||||
; Only applies if <animation-charging> is used
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-foreground = ${color.green}
|
||||
; Framerate in milliseconds
|
||||
animation-charging-framerate = 750
|
||||
|
||||
; Only applies if <animation-discharging> is used
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-3 =
|
||||
animation-discharging-4 =
|
||||
; Framerate in milliseconds
|
||||
animation-discharging-framerate = 500
|
||||
|
||||
[module/battery1]
|
||||
type = internal/battery
|
||||
|
||||
; This is useful in case the battery never reports 100% charge
|
||||
full-at = 89
|
||||
|
||||
; Use the following command to list batteries and adapters:
|
||||
; $ ls -1 /sys/class/power_supply/
|
||||
battery = BAT1
|
||||
adapter = AC
|
||||
|
||||
; If an inotify event haven't been reported in this many
|
||||
; seconds, manually poll for new values.
|
||||
;
|
||||
; Needed as a fallback for systems that don't report events
|
||||
; on sysfs/procfs.
|
||||
;
|
||||
; Disable polling by setting the interval to 0.
|
||||
;
|
||||
; Default: 5
|
||||
poll-interval = 2
|
||||
|
||||
; see "man date" for details on how to format the time string
|
||||
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||
; Default: %H:%M:%S
|
||||
time-format = %H:%M
|
||||
|
||||
; Available tags:
|
||||
; <label-charging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-charging>
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
; Available tags:
|
||||
; <label-discharging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-discharging>
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
|
||||
; Available tags:
|
||||
; <label-full> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
format-full = <label-full>
|
||||
format-full-prefix =
|
||||
format-full-prefix-foreground = ${color.dark-green}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
; %time%
|
||||
; %consumption% (shows current charge rate in watts)
|
||||
label-charging = %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
; %time%
|
||||
; %consumption% (shows current discharge rate in watts)
|
||||
label-discharging = %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
label-full = " Full"
|
||||
|
||||
; Only applies if <ramp-capacity> is used
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-foreground = ${color.dark-yellow}
|
||||
|
||||
; Only applies if <bar-capacity> is used
|
||||
;bar-capacity-width = 10
|
||||
|
||||
; Only applies if <animation-charging> is used
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-foreground = ${color.green}
|
||||
; Framerate in milliseconds
|
||||
animation-charging-framerate = 750
|
||||
|
||||
; Only applies if <animation-discharging> is used
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-3 =
|
||||
animation-discharging-4 =
|
||||
; Framerate in milliseconds
|
||||
animation-discharging-framerate = 500
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
; Only show workspaces defined on the same output as the bar
|
||||
; NOTE: The bspwm and XRandR monitor names must match, which they do by default.
|
||||
; Default: true
|
||||
pin-workspaces = true
|
||||
|
||||
; Output mode flags after focused state label
|
||||
; Default: false
|
||||
;;inline-mode = false
|
||||
|
||||
; Create click handler used to focus workspace
|
||||
; Default: true
|
||||
enable-click = true
|
||||
|
||||
; Create scroll handlers used to cycle workspaces
|
||||
; Default: true
|
||||
enable-scroll = true
|
||||
|
||||
; Set the scroll cycle direction
|
||||
; Default: true
|
||||
;;reverse-scroll = false
|
||||
|
||||
; Use fuzzy (partial) matching on labels when assigning
|
||||
; icons to workspaces
|
||||
; Example: code;♚ will apply the icon to all workspaces
|
||||
; containing 'code' in the label
|
||||
; Default: false
|
||||
;;fuzzy-match = true
|
||||
|
||||
; ws-icon-[0-9]+ = label;icon
|
||||
; Note that the label needs to correspond with the bspwm workspace name
|
||||
;;ws-icon-0 = code;♚
|
||||
;;ws-icon-1 = office;♛
|
||||
;;ws-icon-2 = graphics;♜
|
||||
;;ws-icon-3 = mail;♝
|
||||
;;ws-icon-4 = web;♞
|
||||
;;ws-icon-default = ♟
|
||||
|
||||
; Available tags:
|
||||
; <label-monitor>
|
||||
; <label-state> - gets replaced with <label-(focused|urgent|occupied|empty)>
|
||||
; <label-mode> - gets replaced with <label-(monocle|tiled|fullscreen|floating|locked|sticky|private)>
|
||||
; Default: <label-state>
|
||||
format = <label-state> <label-mode>
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; Default: %name%
|
||||
label-monitor = %name%
|
||||
|
||||
; If any values for label-dimmed-N are defined, the workspace/mode
|
||||
; colors will get overridden with those values if the monitor is out of focus
|
||||
; To only override workspaces in a specific state, use:
|
||||
; label-dimmed-focused
|
||||
; label-dimmed-occupied
|
||||
; label-dimmed-urgent
|
||||
; label-dimmed-empty
|
||||
;;label-dimmed-foreground = #555
|
||||
;;label-dimmed-underline = ${bar/top.background}
|
||||
;;label-dimmed-focused-background = #f00
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-focused = %icon%
|
||||
label-focused-foreground = ${color.foreground}
|
||||
label-focused-background = ${color.background}
|
||||
;label-focused-underline = #fba922
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-occupied = %icon%
|
||||
;label-occupied-underline = #555555
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-urgent = %icon%
|
||||
label-urgent-foreground = ${color.white}
|
||||
label-urgent-background = ${color.red}
|
||||
;label-urgent-underline = #9b0a20
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-empty = %icon%
|
||||
label-empty-foreground = ${color.foreground}
|
||||
|
||||
; The following labels will be used to indicate the layout/mode
|
||||
; for the focused workspace. Requires <label-mode>
|
||||
;
|
||||
; Available tokens:
|
||||
; None
|
||||
label-monocle =
|
||||
label-tiled =
|
||||
label-fullscreen =
|
||||
label-floating =
|
||||
label-pseudotiled = P
|
||||
label-locked =
|
||||
label-locked-foreground = #bd2c40
|
||||
label-sticky =
|
||||
label-sticky-foreground = #fba922
|
||||
label-private =
|
||||
label-private-foreground = #bd2c40
|
||||
|
||||
; Separator in between workspaces
|
||||
label-separator = |
|
||||
label-separator-padding = 2
|
||||
label-separator-foreground = ${color.sep}
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
|
||||
; Seconds to sleep between updates
|
||||
; Default: 1
|
||||
interval = 1
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
; <bar-load>
|
||||
; <ramp-load>
|
||||
; <ramp-coreload>
|
||||
;;format = <label> <ramp-coreload>
|
||||
format = <label>
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${color.red}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - total cpu load averaged over all cores
|
||||
; %percentage-sum% - Cumulative load on all cores
|
||||
; %percentage-cores% - load percentage for each core
|
||||
; %percentage-core[1-9]% - load percentage for specific core
|
||||
label = " %percentage%%"
|
||||
|
||||
; Spacing between individual per-core ramps
|
||||
;;ramp-coreload-spacing = 1
|
||||
;;ramp-coreload-0 = ${cpu.load0}
|
||||
;;ramp-coreload-1 = ${cpu.load1}
|
||||
|
||||
;;ramp-load-0 = ${cpu.load0}
|
||||
;;ramp-load-1 = ${cpu.load1}i
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
|
||||
; Seconds to sleep between updates
|
||||
interval = 1.0
|
||||
|
||||
; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string.
|
||||
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||
date = %a, %d %b
|
||||
|
||||
; Optional time format
|
||||
time = at %I:%M %p
|
||||
|
||||
; if `date-alt` or `time-alt` is defined, clicking
|
||||
; the module will toggle between formats
|
||||
;date-alt = It's %A, %d %B %Y
|
||||
;time-alt = at %k:%M:%S
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
format = %{A1:gsimplecal:} <label> %{A}
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${color.red}
|
||||
|
||||
; Available tokens:
|
||||
; %date%
|
||||
; %time%
|
||||
; Default: %date%
|
||||
label = %date% %time%
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
|
||||
; Mountpoints to display
|
||||
mount-0 = /
|
||||
#mount-1 = /home
|
||||
;mount-2 = /var
|
||||
|
||||
; Seconds to sleep between updates
|
||||
; Default: 30
|
||||
interval = 30
|
||||
|
||||
; Display fixed precision values
|
||||
; Default: false
|
||||
fixed-values = true
|
||||
|
||||
; Spacing between entries
|
||||
; Default: 2
|
||||
spacing = 0
|
||||
|
||||
; Available tags:
|
||||
; <label-mounted> (default)
|
||||
; <bar-free>
|
||||
; <bar-used>
|
||||
; <ramp-capacity>
|
||||
format-mounted = <label-mounted>
|
||||
format-mounted-prefix =
|
||||
format-mounted-prefix-foreground = ${color.dark-green}
|
||||
|
||||
; Available tags:
|
||||
; <label-unmounted> (default)
|
||||
format-unmounted = <label-unmounted>
|
||||
format-unmounted-prefix =
|
||||
format-unmounted-prefix-foreground = ${color.red}
|
||||
|
||||
; Available tokens:
|
||||
; %mountpoint%
|
||||
; %type%
|
||||
; %fsname%
|
||||
; %percentage_free%
|
||||
; %percentage_used%
|
||||
; %total%
|
||||
; %free%
|
||||
; %used%
|
||||
; Default: %mountpoint% %percentage_free%%
|
||||
label-mounted = " %mountpoint% %percentage_used%% Used "
|
||||
|
||||
; Available tokens:
|
||||
; %mountpoint%
|
||||
; Default: %mountpoint% is not mounted
|
||||
label-unmounted = " %mountpoint%: NA"
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
|
||||
; Seconds to sleep between updates
|
||||
; Default: 1
|
||||
interval = 5
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
; <bar-used>
|
||||
; <bar-free>
|
||||
; <ramp-used>
|
||||
; <ramp-free>
|
||||
; <bar-swap-used>
|
||||
; <bar-swap-free>
|
||||
; <ramp-swap-used>
|
||||
; <ramp-swap-free>
|
||||
format = <label>
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${color.blue}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage_used% (default)
|
||||
; %percentage_free%
|
||||
; %gb_used%
|
||||
; %gb_free%
|
||||
; %gb_total%
|
||||
; %mb_used%
|
||||
; %mb_free%
|
||||
; %mb_total%
|
||||
; %percentage_swap_used%
|
||||
; %percentage_swap_free%
|
||||
; %mb_swap_total%
|
||||
; %mb_swap_free%
|
||||
; %mb_swap_used%
|
||||
; %gb_swap_total%
|
||||
; %gb_swap_free%
|
||||
; %gb_swap_used%
|
||||
|
||||
label = " %mb_used%"
|
||||
|
||||
; Only applies if <ramp-used> is used
|
||||
;;ramp-used-0 = ${memory.used0}
|
||||
;;ramp-used-1 = ${memory.used1}
|
||||
;;ramp-used-2 = ${memory.used2}
|
||||
|
||||
; Only applies if <ramp-free> is used
|
||||
;;ramp-free-0 = ${memory.free0}
|
||||
;;ramp-free-1 = ${memory.free1}
|
||||
;;ramp-free-2 = ${memory.free2}
|
||||
|
||||
; If you use both a wired and a wireless network, just add 2 module definitions.
|
||||
[module/wired-network]
|
||||
type = internal/network
|
||||
interface = eth0
|
||||
|
||||
[module/wireless-network]
|
||||
type = internal/network
|
||||
interface = wlp4s0
|
||||
|
||||
; Normal Module
|
||||
[module/network]
|
||||
type = internal/network
|
||||
interface = wlp4s0
|
||||
|
||||
; Seconds to sleep between updates
|
||||
; Default: 1
|
||||
interval = 1.0
|
||||
|
||||
; Test connectivity every Nth update
|
||||
; A value of 0 disables the feature
|
||||
; NOTE: Experimental (needs more testing)
|
||||
; Default: 0
|
||||
;ping-interval = 3
|
||||
|
||||
; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%)
|
||||
; Minimum output width of upload/download rate
|
||||
; Default: 3
|
||||
;;udspeed-minwidth = 5
|
||||
|
||||
; Accumulate values from all interfaces
|
||||
; when querying for up/downspeed rate
|
||||
; Default: false
|
||||
accumulate-stats = true
|
||||
|
||||
; Consider an `UNKNOWN` interface state as up.
|
||||
; Some devices have an unknown state, even when they're running
|
||||
; Default: false
|
||||
unknown-as-up = true
|
||||
|
||||
; Available tags:
|
||||
; <label-connected> (default)
|
||||
; <ramp-signal>
|
||||
format-connected = <label-connected>
|
||||
|
||||
; Available tags:
|
||||
; <label-disconnected> (default)
|
||||
format-disconnected = <label-disconnected>
|
||||
format-disconnected-prefix =
|
||||
format-disconnected-prefix-foreground = ${color.dark-yellow}
|
||||
|
||||
; Available tags:
|
||||
; <label-connected> (default)
|
||||
; <label-packetloss>
|
||||
; <animation-packetloss>
|
||||
;;format-packetloss = <animation-packetloss> <label-connected>
|
||||
|
||||
; Available tokens:
|
||||
; %ifname% [wireless+wired]
|
||||
; %local_ip% [wireless+wired]
|
||||
; %local_ip6% [wireless+wired]
|
||||
; %essid% [wireless]
|
||||
; %signal% [wireless]
|
||||
; %upspeed% [wireless+wired]
|
||||
; %downspeed% [wireless+wired]
|
||||
; %linkspeed% [wired]
|
||||
; Default: %ifname% %local_ip%
|
||||
label-connected = " %essid% %downspeed:10%"
|
||||
label-connected-foreground = ${color.magenta}
|
||||
; Available tokens:
|
||||
; %ifname% [wireless+wired]
|
||||
; Default: (none)
|
||||
label-disconnected = "Offline"
|
||||
label-disconnected-foreground = ${color.dark-red}
|
||||
; Available tokens:
|
||||
; %ifname% [wireless+wired]
|
||||
; %local_ip% [wireless+wired]
|
||||
; %local_ip6% [wireless+wired]
|
||||
; %essid% [wireless]
|
||||
; %signal% [wireless]
|
||||
; %upspeed% [wireless+wired]
|
||||
; %downspeed% [wireless+wired]
|
||||
; %linkspeed% [wired]
|
||||
; Default: (none)
|
||||
;label-packetloss = %essid%
|
||||
;label-packetloss-foreground = #eefafafa
|
||||
|
||||
; Only applies if <ramp-signal> is used
|
||||
;ramp-signal-0 =
|
||||
;ramp-signal-1 =
|
||||
;ramp-signal-2 =
|
||||
;ramp-signal-3 =
|
||||
;ramp-signal-foreground = ${color.purple}
|
||||
|
||||
; Only applies if <animation-packetloss> is used
|
||||
;;animation-packetloss-0 = ⚠
|
||||
;;animation-packetloss-0-foreground = #ffa64c
|
||||
;;animation-packetloss-1 = ⚠
|
||||
;;animation-packetloss-1-foreground = #000000
|
||||
; Framerate in milliseconds
|
||||
;;animation-packetloss-framerate = 500
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
|
||||
; If not, uses default sink
|
||||
sink = alsa_output.pci-0000_12_00.3.analog-stereo
|
||||
|
||||
; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
|
||||
; Default: true
|
||||
use-ui-max = true
|
||||
|
||||
; Interval for volume increase/decrease (in percent points)
|
||||
; Default: 5
|
||||
interval = 5
|
||||
|
||||
; Available tags:
|
||||
; <label-volume> (default)
|
||||
; <ramp-volume>
|
||||
; <bar-volume>
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
|
||||
; Available tags:
|
||||
; <label-muted> (default)
|
||||
; <ramp-volume>
|
||||
; <bar-volume>
|
||||
format-muted = <label-muted>
|
||||
format-muted-prefix =
|
||||
format-muted-prefix-foreground = ${color.red}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
; %decibels%
|
||||
label-volume = %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
; %decibels%
|
||||
label-muted = " Muted"
|
||||
label-muted-foreground = ${color.sep}
|
||||
|
||||
; Only applies if <ramp-volume> is used
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
ramp-volume-foreground = ${color.dark-blue}
|
||||
|
||||
; Right and Middle click
|
||||
click-right = pavucontrol
|
||||
; click-middle =
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
|
||||
; Seconds to sleep between updates
|
||||
; Default: 1
|
||||
interval = 5
|
||||
|
||||
; Thermal zone to use
|
||||
; To list all the zone types, run
|
||||
; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done
|
||||
; Default: 0
|
||||
thermal-zone = 1
|
||||
|
||||
; Full path of temperature sysfs path
|
||||
; Use `sensors` to find preferred temperature source, then run
|
||||
; $ for i in /sys/class/hwmon/hwmon*/temp*_input;
|
||||
; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null ||
|
||||
; echo $(basename ${i%_*})) $(readlink -f $i)"; done
|
||||
; to find path to desired file
|
||||
; Default reverts to thermal zone setting
|
||||
;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
|
||||
hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
|
||||
;hwmon-path = /sys/class/hwmon/hwmon1/temp1_input
|
||||
|
||||
; Threshold temperature to display warning label (in degrees celsius)
|
||||
; Default: 80
|
||||
warn-temperature = 84
|
||||
|
||||
; Whether or not to show units next to the temperature tokens (°C, °F)
|
||||
; Default: true
|
||||
units = true
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
; <ramp>
|
||||
format = <ramp> <label>
|
||||
|
||||
; Available tags:
|
||||
; <label-warn> (default)
|
||||
; <ramp>
|
||||
format-warn = <ramp> <label-warn>
|
||||
|
||||
; Available tokens:
|
||||
; %temperature% (deprecated)
|
||||
; %temperature-c% (default, temperature in °C)
|
||||
; %temperature-f% (temperature in °F)
|
||||
label = %temperature-c%
|
||||
|
||||
; Available tokens:
|
||||
; %temperature% (deprecated)
|
||||
; %temperature-c% (default, temperature in °C)
|
||||
; %temperature-f% (temperature in °F)
|
||||
label-warn = "%temperature-c%"
|
||||
label-warn-foreground = ${color.red}
|
||||
|
||||
; Requires the <ramp> tag
|
||||
; The icon selection will range from 0 to `warn-temperature`
|
||||
; with the current temperature as index.
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-3 =
|
||||
ramp-4 =
|
||||
ramp-foreground = ${color.cyan}
|
||||
|
||||
[module/keyboard]
|
||||
type = internal/xkeyboard
|
||||
|
||||
; List of indicators to ignore
|
||||
blacklist-0 = num lock
|
||||
blacklist-1 = scroll lock
|
||||
|
||||
; Available tags:
|
||||
; <label-layout> (default)
|
||||
; <label-indicator> (default)
|
||||
format = <label-layout> <label-indicator>
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${color.magenta}
|
||||
|
||||
; Available tokens:
|
||||
; %layout%
|
||||
; %name%
|
||||
; %number%
|
||||
; Default: %layout%
|
||||
label-layout = " %layout%"
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; Default: %name%
|
||||
label-indicator-on = "%name%"
|
||||
label-indicator-on-foreground = ${color.white}
|
||||
label-indicator-on-background = ${color.dark-red}
|
||||
|
||||
[module/title]
|
||||
type = internal/xwindow
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
format = <label>
|
||||
format-prefix =
|
||||
format-foreground = ${color.foreground}
|
||||
|
||||
; Available tokens:
|
||||
; %title%
|
||||
; Default: %title%
|
||||
label = " %title%"
|
||||
label-maxlen = 30
|
||||
|
||||
; Used instead of label when there is no window title
|
||||
label-empty = " Desktop"
|
||||
|
||||
[module/workspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
; Only show workspaces defined on the same output as the bar
|
||||
;
|
||||
; Useful if you want to show monitor specific workspaces
|
||||
; on different bars
|
||||
;
|
||||
; Default: false
|
||||
pin-workspaces = true
|
||||
|
||||
; Create click handler used to focus desktop
|
||||
; Default: true
|
||||
enable-click = true
|
||||
|
||||
; Create scroll handlers used to cycle desktops
|
||||
; Default: true
|
||||
enable-scroll = true
|
||||
|
||||
; icon-[0-9]+ = <desktop-name>;<icon>
|
||||
; NOTE: The desktop name needs to match the name configured by the WM
|
||||
; You can get a list of the defined desktops using:
|
||||
; $ xprop -root _NET_DESKTOP_NAMES
|
||||
icon-0 = 1;
|
||||
icon-1 = 2;
|
||||
icon-2 = 3;
|
||||
icon-3 = 4;
|
||||
icon-4 = 5;
|
||||
icon-5 = 6;
|
||||
icon-6 = 7;
|
||||
icon-7 = 8;
|
||||
;
|
||||
icon-8 = 9;
|
||||
icon-9 = 10;
|
||||
icon-default =
|
||||
|
||||
; Available tags:
|
||||
; <label-monitor>
|
||||
; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
|
||||
; Default: <label-state>
|
||||
format = <label-state>
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; Default: %name%
|
||||
label-monitor = %name%
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-active = %icon%
|
||||
label-active-foreground = ${color.red}
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-occupied = %icon%
|
||||
label-occupied-foreground = ${color.cyan}
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-urgent = %icon%
|
||||
label-urgent-foreground = ${color.dark-red}
|
||||
|
||||
; Available tokens:
|
||||
; %name%
|
||||
; %icon%
|
||||
; %index%
|
||||
; Default: %icon% %name%
|
||||
label-empty = %icon%
|
||||
label-empty-foreground = ${color.foreground}
|
||||
|
||||
label-active-padding = 1
|
||||
label-urgent-padding = 1
|
||||
label-occupied-padding = 1
|
||||
label-empty-padding = 1
|
280
dot_config/private_tint2/tint2rc
Normal file
280
dot_config/private_tint2/tint2rc
Normal file
|
@ -0,0 +1,280 @@
|
|||
#---- Generated by tint2conf aeaf ----
|
||||
# See https://gitlab.com/o9000/tint2/wikis/Configure for
|
||||
# full documentation of the configuration options.
|
||||
|
||||
#-------------------------------------
|
||||
# Gradients
|
||||
|
||||
# Gradient 1: thin film effect
|
||||
gradient = horizontal
|
||||
start_color = #111122 30
|
||||
end_color = #112211 30
|
||||
color_stop = 60 #221111 30
|
||||
|
||||
# Gradient 2: radial glow
|
||||
gradient = radial
|
||||
start_color = #ffffff 20
|
||||
end_color = #ffffff 0
|
||||
|
||||
#-------------------------------------
|
||||
# Backgrounds
|
||||
|
||||
# Background 1: Panel
|
||||
rounded = 0
|
||||
border_width = 0
|
||||
border_sides = TBLR
|
||||
background_color = #323d43 100
|
||||
border_color = #323d43 30
|
||||
background_color_hover = #323d43 70
|
||||
border_color_hover = #323d43 30
|
||||
background_color_pressed = #323d43 100
|
||||
border_color_pressed = #323d43 30
|
||||
|
||||
# Background 2: Default task, Iconified task
|
||||
rounded = 4
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
background_color = #4a555b 20
|
||||
border_color = #525c62 30
|
||||
background_color_hover = #aaaaaa 22
|
||||
border_color_hover = #eaeaea 44
|
||||
background_color_pressed = #555555 4
|
||||
border_color_pressed = #eaeaea 44
|
||||
|
||||
# Background 3: Active task
|
||||
rounded = 4
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
background_color = #7fbbb3 40
|
||||
border_color = #d8caac 40
|
||||
background_color_hover = #aaaaaa 22
|
||||
border_color_hover = #eaeaea 44
|
||||
background_color_pressed = #555555 4
|
||||
border_color_pressed = #eaeaea 44
|
||||
|
||||
# Background 4: Urgent task
|
||||
rounded = 4
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
background_color = #e26c6e 100
|
||||
border_color = #d5b26b 100
|
||||
background_color_hover = #dbbc7f 100
|
||||
border_color_hover = #d5b26b 100
|
||||
background_color_pressed = #555555 4
|
||||
border_color_pressed = #d5b26b 100
|
||||
|
||||
# Background 5: Tooltip
|
||||
rounded = 1
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
background_color = #9bb86f 100
|
||||
border_color = #4a555b 100
|
||||
background_color_hover = #ffffaa 100
|
||||
border_color_hover = #000000 100
|
||||
background_color_pressed = #ffffaa 100
|
||||
border_color_pressed = #000000 100
|
||||
|
||||
#-------------------------------------
|
||||
# Panel
|
||||
panel_items = TEEB:SCP
|
||||
panel_size = 100% 48
|
||||
scale_relative_to_dpi = 216
|
||||
panel_margin = 0 0
|
||||
panel_padding = 2 0 2
|
||||
panel_background_id = 1
|
||||
wm_menu = 1
|
||||
panel_dock = 0
|
||||
panel_position = top center horizontal
|
||||
panel_layer = bottom
|
||||
panel_monitor = all
|
||||
panel_shrink = 0
|
||||
autohide = 0
|
||||
autohide_show_timeout = 0
|
||||
autohide_hide_timeout = 0.5
|
||||
autohide_height = 2
|
||||
strut_policy = follow_size
|
||||
panel_window_name = tint2
|
||||
disable_transparency = 1
|
||||
mouse_effects = 1
|
||||
font_shadow = 0
|
||||
mouse_hover_icon_asb = 100 0 10
|
||||
mouse_pressed_icon_asb = 100 0 0
|
||||
|
||||
#-------------------------------------
|
||||
# Taskbar
|
||||
taskbar_mode = multi_desktop
|
||||
taskbar_hide_if_empty = 1
|
||||
taskbar_padding = 0 0 2
|
||||
taskbar_background_id = 0
|
||||
taskbar_active_background_id = 0
|
||||
taskbar_name = 1
|
||||
taskbar_hide_inactive_tasks = 0
|
||||
taskbar_hide_different_monitor = 0
|
||||
taskbar_hide_different_desktop = 0
|
||||
taskbar_always_show_all_desktop_tasks = 0
|
||||
taskbar_name_padding = 4 2
|
||||
taskbar_name_background_id = 0
|
||||
taskbar_name_active_background_id = 0
|
||||
taskbar_name_font = Hack 18
|
||||
taskbar_name_font_color = #d8caac 100
|
||||
taskbar_name_active_font_color = #d0bf9b 100
|
||||
taskbar_distribute_size = 0
|
||||
taskbar_sort_order = none
|
||||
task_align = left
|
||||
|
||||
#-------------------------------------
|
||||
# Task
|
||||
task_text = 1
|
||||
task_icon = 1
|
||||
task_centered = 1
|
||||
urgent_nb_of_blink = 100000
|
||||
task_maximum_size = 150 35
|
||||
task_padding = 2 4 2
|
||||
task_tooltip = 1
|
||||
task_thumbnail = 0
|
||||
task_thumbnail_size = 210
|
||||
task_font = Hack 10
|
||||
task_font_color = #d8caac 100
|
||||
task_background_id = 2
|
||||
task_active_background_id = 3
|
||||
task_urgent_background_id = 4
|
||||
task_iconified_background_id = 2
|
||||
mouse_left = toggle
|
||||
mouse_middle = none
|
||||
mouse_right = close
|
||||
mouse_scroll_up = prev_task
|
||||
mouse_scroll_down = next_task
|
||||
|
||||
#-------------------------------------
|
||||
# System tray (notification area)
|
||||
systray_padding = 2 4 4
|
||||
systray_background_id = 0
|
||||
systray_sort = ascending
|
||||
systray_icon_size = 28
|
||||
systray_icon_asb = 100 0 0
|
||||
systray_monitor = 1
|
||||
systray_name_filter =
|
||||
|
||||
#-------------------------------------
|
||||
# Launcher
|
||||
launcher_padding = 2 4 2
|
||||
launcher_background_id = 0
|
||||
launcher_icon_background_id = 0
|
||||
launcher_icon_size = 24
|
||||
launcher_icon_asb = 100 0 0
|
||||
launcher_icon_theme_override = 0
|
||||
startup_notifications = 1
|
||||
launcher_tooltip = 1
|
||||
launcher_item_app = tint2conf.desktop
|
||||
launcher_item_app = firefox.desktop
|
||||
launcher_item_app = iceweasel.desktop
|
||||
launcher_item_app = chromium-browser.desktop
|
||||
launcher_item_app = google-chrome.desktop
|
||||
|
||||
#-------------------------------------
|
||||
# Clock
|
||||
time1_format = %H:%M
|
||||
time2_format = %a %d %b
|
||||
time1_font = Hack 14
|
||||
time2_font = Hack 10
|
||||
time1_timezone =
|
||||
time2_timezone =
|
||||
clock_font_color = #d8caac 100
|
||||
clock_padding = 6 0
|
||||
clock_background_id = 0
|
||||
clock_tooltip = %H:%M %A %d %B %Y
|
||||
clock_tooltip_timezone =
|
||||
clock_lclick_command = gsimplecal
|
||||
clock_rclick_command =
|
||||
clock_mclick_command =
|
||||
clock_uwheel_command =
|
||||
clock_dwheel_command =
|
||||
|
||||
#-------------------------------------
|
||||
# Battery
|
||||
battery_tooltip = 1
|
||||
battery_low_status = 10
|
||||
battery_low_cmd = notify-send "Low battery: 10%"
|
||||
battery_full_cmd = notify-send "Battery done charging"
|
||||
bat1_font = Hack 14
|
||||
battery_font_color = #d8caac 100
|
||||
bat1_format = | Bat: %s %p %t
|
||||
bat2_format =
|
||||
battery_padding = 1 0
|
||||
battery_background_id = 0
|
||||
battery_hide = 101
|
||||
battery_lclick_command =
|
||||
battery_rclick_command =
|
||||
battery_mclick_command =
|
||||
battery_uwheel_command =
|
||||
battery_dwheel_command =
|
||||
ac_connected_cmd = notify-send "AC Power connected"
|
||||
ac_disconnected_cmd = "AC Power disconnected"
|
||||
|
||||
#-------------------------------------
|
||||
# Tooltip
|
||||
tooltip_show_timeout = 0.5
|
||||
tooltip_hide_timeout = 0.1
|
||||
tooltip_padding = 4 4
|
||||
tooltip_background_id = 5
|
||||
tooltip_font_color = #4a555b 100
|
||||
tooltip_font = Hack 14
|
||||
|
||||
#-------------------------------------
|
||||
# Separators
|
||||
|
||||
# Separator1
|
||||
separator = new
|
||||
separator_background_id = 0
|
||||
separator_color = #7fbbb3
|
||||
separator_style = dots
|
||||
separator_size = 4
|
||||
separator_padding = 12 0
|
||||
|
||||
# Separator2
|
||||
separator = new
|
||||
separator_background_id = 0
|
||||
separator_color = #7fbbb3 80
|
||||
separator_style = line
|
||||
separator_size = 2
|
||||
separator_padding = 12 0
|
||||
|
||||
# Separator3
|
||||
separator = new
|
||||
separator_background_id = 0
|
||||
separator_color = #7fbbb3
|
||||
separator_style = empty
|
||||
separator_size = 6
|
||||
separator_padding = 12 0
|
||||
|
||||
#-------------------------------------
|
||||
# Executors
|
||||
|
||||
# Exec1
|
||||
# Note the use of "stdbuf -oL" to force the program to flush the output line by line.
|
||||
execp = new
|
||||
execp_command = free -b -s10| stdbuf -oL awk '/^Mem:/ { printf "Mem: %s / \n", $3 }' | stdbuf -oL numfmt --to=iec-i --field=2 -d' '
|
||||
execp_interval = 10
|
||||
execp_continuous = 1
|
||||
execp_font = Hack 14
|
||||
execp_font_color = #d8caac 100
|
||||
|
||||
# Exec2
|
||||
execp = new
|
||||
execp_command = free -b -s10| stdbuf -oL awk '/^Mem:/ { printf "%s %.0f%%\n", $2, 100 * ($2 - $7) / $2 }' | stdbuf -oL numfmt --to=iec-i --field=1 -d' '
|
||||
execp_interval = 10
|
||||
execp_continuous = 1
|
||||
execp_font = Hack 14
|
||||
execp_font_color = #d8caac 100
|
||||
|
||||
#-------------------------------------
|
||||
# Buttons
|
||||
|
||||
#Button1
|
||||
button = new
|
||||
button_text =
|
||||
button_icon = /usr/share/icons/Papirus-Dark/24x24/actions/exit.svg
|
||||
button_background_id = 0
|
||||
button_lclick_command = rofi -dpi 240 -show power-menu -modi power-menu:/usr/bin/rofi-power-menu
|
||||
button_mclick_command = rofi -dpi 240 -show power-menu -modi power-menu:"/usr/bin/rofi-power-menu --choose suspend/hibernate"
|
||||
button_rclick_command = rofi -dpi 240 -show power-menu -modi power-menu:"/usr/bin/rofi-power-menu --choices reboot/shutdown"
|
185
dot_config/rofi/config.rasi
Normal file
185
dot_config/rofi/config.rasi
Normal file
|
@ -0,0 +1,185 @@
|
|||
/* ==========================================================================
|
||||
Everforest dark theme for rofi
|
||||
|
||||
Based on the Everforest color scheme for Vim by sainnhe
|
||||
https://github.com/sainnhe/everforest/
|
||||
========================================================================== */
|
||||
|
||||
* {
|
||||
/* Theme settings */
|
||||
highlight: bold italic;
|
||||
scrollbar: true;
|
||||
|
||||
/* Everforest colors */
|
||||
|
||||
everforest-bg0: #323d43;
|
||||
everforest-bg1: #525c6d;
|
||||
everforest-fg: #d8cacc;
|
||||
everforest-black: #4a555b;
|
||||
everforest-dark-grey: #525c62;
|
||||
everforest-dark-red: #e26c6e;
|
||||
everforest-red: #e68183;
|
||||
everforest-dark-yellow: #d5b26b;
|
||||
everforest-yellow: #dbbc7f;
|
||||
everforest-dark-blue: #6eb2a9;
|
||||
everforest-blue: #7fbbb3;
|
||||
everforest-dark-magenta: #cf87a9;
|
||||
everforest-magenta: #d699b6;
|
||||
everforest-dark-cyan: #72b783;
|
||||
everforest-cyan: #83c092;
|
||||
everforest-light-grey: #d8caac;
|
||||
everforest-white: #d8caac;
|
||||
|
||||
/* Theme colors */
|
||||
background: @everforest-bg0;
|
||||
background-color: @background;
|
||||
foreground: @everforest-fg;
|
||||
border-color: @everforest-dark-yellow;
|
||||
separatorcolor: @border-color;
|
||||
scrollbar-handle: @border-color;
|
||||
|
||||
normal-background: @background;
|
||||
normal-foreground: @foreground;
|
||||
alternate-normal-background: @everforest-bg1;
|
||||
alternate-normal-foreground: @foreground;
|
||||
selected-normal-background: @everforest-dark-cyan;
|
||||
selected-normal-foreground: @everforest-black;
|
||||
|
||||
active-background: @everforest-yellow;
|
||||
active-foreground: @background;
|
||||
alternate-active-background: @active-background;
|
||||
alternate-active-foreground: @active-foreground;
|
||||
selected-active-background: @everforest-cyan;
|
||||
selected-active-foreground: @active-foreground;
|
||||
|
||||
urgent-background: @everforest-dark-red;
|
||||
urgent-foreground: @background;
|
||||
alternate-urgent-background: @urgent-background;
|
||||
alternate-urgent-foreground: @urgent-foreground;
|
||||
selected-urgent-background: @everforest-red;
|
||||
selected-urgent-foreground: @urgent-foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: @background;
|
||||
border: 2;
|
||||
padding: 2;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
message {
|
||||
border: 2px 0 0;
|
||||
border-color: @separatorcolor;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
textbox {
|
||||
highlight: @highlight;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
listview {
|
||||
border: 2px solid 0 0;
|
||||
padding: 2px 0 0;
|
||||
border-color: @separatorcolor;
|
||||
spacing: 2px;
|
||||
scrollbar: @scrollbar;
|
||||
}
|
||||
|
||||
element {
|
||||
border: 0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
element.normal.normal {
|
||||
background-color: @normal-background;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
|
||||
element.normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
|
||||
element.normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @active-foreground;
|
||||
}
|
||||
|
||||
element.selected.normal {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
|
||||
element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
|
||||
element.selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @selected-active-foreground;
|
||||
}
|
||||
|
||||
element.alternate.normal {
|
||||
background-color: @alternate-normal-background;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}
|
||||
|
||||
element.alternate.urgent {
|
||||
background-color: @alternate-urgent-background;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}
|
||||
|
||||
element.alternate.active {
|
||||
background-color: @alternate-active-background;
|
||||
text-color: @alternate-active-foreground;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
width: 4px;
|
||||
border: 0;
|
||||
handle-color: @scrollbar-handle;
|
||||
handle-width: 8px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
mode-switcher {
|
||||
border: 2px 0 0;
|
||||
border-color: @separatorcolor;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
padding: 2px;
|
||||
children: [ prompt, textbox-prompt-sep, entry, case-indicator ];
|
||||
}
|
||||
|
||||
case-indicator,
|
||||
entry,
|
||||
prompt,
|
||||
button {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
|
||||
button.selected {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
|
||||
textbox-prompt-sep {
|
||||
expand: false;
|
||||
str: ":";
|
||||
text-color: @normal-foreground;
|
||||
margin: 0 0.3em 0 0;
|
||||
}
|
||||
element-text, element-icon {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
180
dot_config/sxhkd/sxhkdrc
Normal file
180
dot_config/sxhkd/sxhkdrc
Normal file
|
@ -0,0 +1,180 @@
|
|||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
kitty
|
||||
|
||||
# program launcher
|
||||
super + @space
|
||||
rofi -dpi 240 -modi drun, run -show drun -show-icons
|
||||
|
||||
# power menu
|
||||
super + @End
|
||||
rofi -dpi 240 -show power-menu -modi power-menu:/usr/bin/rofi-power-menu
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
# Show list of open windows
|
||||
alt + @Tab
|
||||
rofi -show window
|
||||
|
||||
# Lock the screen
|
||||
ctrl + alt + l
|
||||
xset s activate
|
||||
|
||||
# Screenshot
|
||||
Print
|
||||
maim | xclip -selection clipboard -t image/png
|
||||
|
||||
alt + Print
|
||||
maim -s | xclip -selection clipboard -t image/png
|
||||
|
||||
shift + Print
|
||||
maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
|
||||
|
||||
# bspwm hotkeys
|
||||
#
|
||||
|
||||
# quit/restart bspwm
|
||||
super + alt + {q,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
# close and kill
|
||||
super + {_,shift + }q
|
||||
bspc node -{c,k}
|
||||
|
||||
# alternate between the tiled and monocle layout
|
||||
super + m
|
||||
bspc desktop -l next
|
||||
|
||||
# send the newest marked node to the newest preselected node
|
||||
super + y
|
||||
bspc node newest.marked.local -n newest.!automatic.local
|
||||
|
||||
# swap the current node and the biggest window
|
||||
super + g
|
||||
bspc node -s biggest.window
|
||||
|
||||
#
|
||||
# state/flags
|
||||
#
|
||||
|
||||
# set the window state
|
||||
super + {t,shift + t,s,f}
|
||||
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
|
||||
# set the node flags
|
||||
super + ctrl + {m,x,y,z}
|
||||
bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#
|
||||
# focus/swap
|
||||
#
|
||||
|
||||
# focus the node in the given direction
|
||||
super + {_,shift + }{h,j,k,l}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
|
||||
# focus the node for the given path jump
|
||||
super + {p,b,comma,period}
|
||||
bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# focus the next/previous window in the current desktop
|
||||
super + {_,shift + }c
|
||||
bspc node -f {next,prev}.local.!hidden.window
|
||||
|
||||
# focus the next/previous desktop in the current monitor
|
||||
super + bracket{left,right}
|
||||
bspc desktop -f {prev,next}.local
|
||||
|
||||
# focus the last node/desktop
|
||||
super + {grave,Tab}
|
||||
bspc {node,desktop} -f last
|
||||
|
||||
# focus the older or newer node in the focus history
|
||||
super + {o,i}
|
||||
bspc wm -h off; \
|
||||
bspc node {older,newer} -f; \
|
||||
bspc wm -h on
|
||||
|
||||
# focus or send to the given desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# preselect
|
||||
#
|
||||
|
||||
# preselect the direction
|
||||
super + ctrl + {h,j,k,l}
|
||||
bspc node -p {west,south,north,east}
|
||||
|
||||
# preselect the ratio
|
||||
super + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# cancel the preselection for the focused node
|
||||
super + ctrl + space
|
||||
bspc node -p cancel
|
||||
|
||||
# cancel the preselection for the focused desktop
|
||||
super + ctrl + shift + space
|
||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# expand a window by moving one of its side outward
|
||||
super + alt + {h,j,k,l}
|
||||
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||
|
||||
# contract a window by moving one of its side inward
|
||||
super + alt + shift + {h,j,k,l}
|
||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||
|
||||
# move a floating window
|
||||
super + {Left,Down,Up,Right}
|
||||
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||
|
||||
### Function Keys
|
||||
|
||||
XF86AudioMute
|
||||
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
|
||||
XF86AudioLowerVolume
|
||||
pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||
|
||||
XF86AudioRaiseVolume
|
||||
pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||
|
||||
XF86AudioMicMute
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
|
||||
XF86MonBrightnessDown
|
||||
xbacklight -dec 2
|
||||
|
||||
XF86MonBrightnessUp
|
||||
xbacklight -inc 2
|
||||
|
||||
XF86Display
|
||||
mirror-outputs
|
||||
|
||||
XF86WLAN
|
||||
toggle-wifi
|
||||
|
||||
XF86Tools
|
||||
lxappearance
|
||||
|
||||
XF86Search
|
||||
pamac-manager
|
||||
|
||||
XF86LaunchA
|
||||
rofi -show window
|
||||
|
||||
XF86Explorer
|
||||
thunar
|
6
dot_config/xsettingsd/xsettingsd.conf
Normal file
6
dot_config/xsettingsd/xsettingsd.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
Net/IconThemeName "Papirus-Dark"
|
||||
Net/ThemeName "vimix-dark-beryl"
|
||||
Xft/Hinting 1
|
||||
Xft/HintStyle "hintfull"
|
||||
Xft/Antialias 1
|
||||
Xft/RGBA "rgb"
|
0
dot_emacs.d/.keep
Normal file
0
dot_emacs.d/.keep
Normal file
763
dot_emacs.d/init.el
Normal file
763
dot_emacs.d/init.el
Normal file
|
@ -0,0 +1,763 @@
|
|||
; Disable package.el early so it won't start loading packages before init is loaded
|
||||
(setq package-enable-at-startup nil)
|
||||
|
||||
;; No thanks
|
||||
(setq inhibit-startup-message t) ; Disable startup message
|
||||
(scroll-bar-mode -1) ; Disable visible scrollbar
|
||||
(tool-bar-mode -1) ; Disable the toolbar
|
||||
(tooltip-mode -1) ; Disable tooltips
|
||||
(set-fringe-mode 10) ; Add come extra space to the left/right sides
|
||||
(menu-bar-mode -1) ; Disable the menu bar
|
||||
(setq-default custom-file null-device) ; Write customizations not in this file to the null device (AKA stop littering in my init.el)
|
||||
(setq confirm-kill-processes nil) ; Stop asking about running processes on exit
|
||||
|
||||
;; Visible bell
|
||||
(setq visible-bell t)
|
||||
|
||||
; Font - Does nothing if mixed-pitch package is used
|
||||
;(set-face-attribute 'default nil :font "ibm plex mono light" :height 100)
|
||||
|
||||
;; Make ESC quit prompts
|
||||
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||
|
||||
;; paren/bracket pairs
|
||||
(show-paren-mode t)
|
||||
(setq-default show-paren-style 'parenthesis)
|
||||
(electric-pair-mode 1)
|
||||
|
||||
;; Profile emacs startup
|
||||
(add-hook 'emacs-startup-hook
|
||||
(lambda ()
|
||||
(message "*** Emacs loaded in %s with %d garbage collections."
|
||||
(format "%.2f seconds"
|
||||
(float-time
|
||||
(time-subtract after-init-time before-init-time)))
|
||||
gcs-done)))
|
||||
|
||||
;; Change the user-emacs-directory to keep ~/.emacs.d clean
|
||||
(setq user-emacs-directory (expand-file-name "~/.cache/emacs/")
|
||||
url-history-file (expand-file-name "url/history" user-emacs-directory))
|
||||
|
||||
;; No annoying Windows errors
|
||||
(set-default-coding-systems 'utf-8)
|
||||
|
||||
;; Disable suspend-frame shortcut
|
||||
(define-key global-map "\C-z" nil)
|
||||
|
||||
;; More reasonable keybinds for resizing windows
|
||||
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally)
|
||||
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally)
|
||||
(global-set-key (kbd "S-C-<down>") 'shrink-window)
|
||||
(global-set-key (kbd "S-C-<up>") 'enlarge-window)
|
||||
|
||||
;; scrolling
|
||||
(setq mouse-wheel-scroll-amount '(4 ((shift) . 1))) ; 1: lines to scroll, 2: while holding shift
|
||||
(setq mouse-wheel-progressive-speed nil) ; acceleration
|
||||
(setq mouse-wheel-follow-mouse 't) ; scroll window under cursor
|
||||
(setq scroll-step 1) ; keyboard scrolling
|
||||
|
||||
;; Tabs
|
||||
(setq-default indent-tabs-mode nil)
|
||||
(setq-default tab-width 4)
|
||||
(setq indent-line-function 'insert-tab)
|
||||
|
||||
;; Line numbers
|
||||
(setq column-number-mode t)
|
||||
(dolist (mode '(text-mode-hook
|
||||
prog-mode-hook
|
||||
conf-mode-hook))
|
||||
(add-hook mode (lambda () (display-line-numbers-mode 1))))
|
||||
|
||||
;; Show vertical line at column 80 in prog-mode
|
||||
(setq-default fill-column 80)
|
||||
(add-hook 'prog-mode-hook #'display-fill-column-indicator-mode)
|
||||
|
||||
;; Install and load straight.el
|
||||
(defvar bootstrap-version)
|
||||
(let ((bootstrap-file
|
||||
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
||||
(bootstrap-version 5))
|
||||
(unless (file-exists-p bootstrap-file)
|
||||
(with-current-buffer
|
||||
(url-retrieve-synchronously
|
||||
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
||||
'silent 'inhibit-cookies)
|
||||
(goto-char (point-max))
|
||||
(eval-print-last-sexp)))
|
||||
(load bootstrap-file nil 'nomessage))
|
||||
|
||||
;;;;;;;;;;;;;; Not needed when using straight.el ;;;;;;;;;;;;;;
|
||||
;; Initialize package sources
|
||||
;(require 'package)
|
||||
|
||||
;(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||
; ("org" . "https://orgmode.org/elpa/")
|
||||
; ("elpa" . "https://elpa.gnu.org/packages/")))
|
||||
|
||||
;(package-initialize)
|
||||
;(unless package-archive-contents
|
||||
; (package-refresh-contents))
|
||||
|
||||
;; Initialize use-package on non-Linux platforms
|
||||
;(unless (package-installed-p 'use-package)
|
||||
; (package-install 'use-package))
|
||||
|
||||
;(require 'use-package)
|
||||
;(setq use-package-always-ensure t)
|
||||
;;;;;;;;;;;;;;
|
||||
|
||||
;; Install use-package
|
||||
(straight-use-package 'use-package)
|
||||
|
||||
;; Make use-package use straight.el
|
||||
(use-package straight
|
||||
:custom (straight-use-package-by-default t))
|
||||
|
||||
;; Theme
|
||||
|
||||
(setq custom-safe-themes t)
|
||||
|
||||
;; (use-package everforest
|
||||
;; :straight (:type git :repo "https://git.sr.ht/~theorytoe/everforest-theme"))
|
||||
|
||||
(add-to-list 'custom-theme-load-path "~/.cache/emacs/custom/everforest-theme")
|
||||
(load-theme 'everforest-hard-dark t)
|
||||
|
||||
;; Help distinguish work buffers from others like sidebars and terminal
|
||||
;; (use-package solaire-mode
|
||||
;; :init
|
||||
;; (solaire-global-mode t))
|
||||
|
||||
;; Icons
|
||||
(use-package all-the-icons)
|
||||
|
||||
;; Modeline
|
||||
|
||||
(use-package minions
|
||||
:hook (doom-modeline-mode . minions-mode)
|
||||
(simple-modeline-mode . minions-mode))
|
||||
|
||||
(use-package doom-modeline
|
||||
:init (doom-modeline-mode)
|
||||
:custom
|
||||
(doom-modeline-height 30)
|
||||
(doom-modeline-bar-width .75)
|
||||
(doom-modeline-window-width-limit fill-column)
|
||||
(doom-modeline-lsp t)
|
||||
(doom-modeline-minor-modes t)
|
||||
(doom-modeline-persp-name nil)
|
||||
(doom-modeline-buffer-file-name-style 'truncate-upto-project)
|
||||
(doom-modeline-major-mode-icon t)
|
||||
(doom-modeline-major-mode-color-icon t)
|
||||
(doom-modeline-enable-word-count t)
|
||||
(doom-modeline-env-version t)
|
||||
(doom-modeline-env-load-string "..."))
|
||||
|
||||
;; Don't remind me about some minor modes
|
||||
(use-package diminish)
|
||||
|
||||
;; Automatically set paths to the new user-emacs-directory
|
||||
(use-package no-littering)
|
||||
|
||||
;; Automatically clean whitespace
|
||||
(use-package ws-butler
|
||||
:hook ((text-mode . ws-butler-mode)
|
||||
(prog-mode . ws-butler-mode)))
|
||||
|
||||
;; Overview of keybindings available based on prefix keys
|
||||
(use-package which-key
|
||||
:init (which-key-mode)
|
||||
:config
|
||||
(setq which-key-idle-delay 0.3))
|
||||
|
||||
;; Save history over restarts
|
||||
(use-package savehist
|
||||
:init
|
||||
(savehist-mode))
|
||||
|
||||
;; Completion with vertico/consult
|
||||
|
||||
(use-package vertico
|
||||
:init
|
||||
(vertico-mode)
|
||||
|
||||
;; Different scroll margin
|
||||
;; (set vertico-scroll-margin 0)
|
||||
|
||||
;; Show more candidates
|
||||
;; (setq vertico-count 20)
|
||||
|
||||
;; Grow and shrink the Vertico minibuffer
|
||||
;; (setq vertico-resize t)
|
||||
|
||||
;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
|
||||
;; (setq vertico-cycle t)
|
||||
)
|
||||
|
||||
(use-package emacs
|
||||
:init
|
||||
;; Add prompt indicator to `completing-read-multiple'.
|
||||
(defun crm-indicator (args)
|
||||
(cons (format "[CRM%s] %s"
|
||||
(replace-regexp-in-string
|
||||
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
||||
crm-separator)
|
||||
(car args))
|
||||
(cdr args)))
|
||||
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
||||
;; Do not allow the cursor in the minibuffer prompt
|
||||
(setq minibuffer-prompt-properties
|
||||
'(read-only t cursor-intangible t face minibuffer-prompt))
|
||||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
||||
;; Emacs 28: Hide commands in M-x which do not work in the current mode.
|
||||
;; Vertico commands are hidden in normal buffers.
|
||||
(setq read-extended-command-predicate
|
||||
#'command-completion-default-include-p)
|
||||
(setq enable-recursive-minibuffers t))
|
||||
|
||||
(use-package consult
|
||||
:bind (;; C-c bindings (mode-specific-map)
|
||||
("C-c h" . consult-history)
|
||||
("C-c m" . consult-mode-command)
|
||||
("C-c k" . consult-kmacro)
|
||||
;; C-x bindings (ctl-x-map)
|
||||
("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
|
||||
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
|
||||
("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
|
||||
("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
|
||||
("C-x r b" . consult-bookmark) ;; orig. bookmark-jump
|
||||
("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer
|
||||
;; Custom M-# bindings for fast register access
|
||||
("M-#" . consult-register-load)
|
||||
("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
|
||||
("C-M-#" . consult-register)
|
||||
;; Other custom bindings
|
||||
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
||||
("<help> a" . consult-apropos) ;; orig. apropos-command
|
||||
;; M-g bindings (goto-map)
|
||||
("M-g e" . consult-compile-error)
|
||||
;; ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
|
||||
("M-g f" . consult-flycheck)
|
||||
("M-g g" . consult-goto-line) ;; orig. goto-line
|
||||
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
||||
("M-g o" . consult-outline) ;; Alternative: consult-org-heading
|
||||
("M-g m" . consult-mark)
|
||||
("M-g k" . consult-global-mark)
|
||||
("M-g i" . consult-imenu)
|
||||
("M-g I" . consult-imenu-multi)
|
||||
;; M-s bindings (search-map)
|
||||
("M-s d" . consult-find)
|
||||
("M-s D" . consult-locate)
|
||||
("M-s g" . consult-grep)
|
||||
("M-s G" . consult-git-grep)
|
||||
("M-s r" . consult-ripgrep)
|
||||
("M-s l" . consult-line)
|
||||
("M-s L" . consult-line-multi)
|
||||
("M-s m" . consult-multi-occur)
|
||||
("M-s k" . consult-keep-lines)
|
||||
("M-s u" . consult-focus-lines)
|
||||
;; Isearch integration
|
||||
("M-s e" . consult-isearch-history)
|
||||
:map isearch-mode-map
|
||||
("M-e" . consult-isearch-history) ;; orig. isearch-edit-string
|
||||
("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string
|
||||
("M-s l" . consult-line) ;; needed by consult-line to detect isearch
|
||||
("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch
|
||||
;; Minibuffer history
|
||||
:map minibuffer-local-map
|
||||
("M-s" . consult-history) ;; orig. next-matching-history-element
|
||||
("M-r" . consult-history)) ;; orig. previous-matching-history-element
|
||||
|
||||
;; Enable automatic preview at point in the *Completions* buffer. This is
|
||||
;; relevant when you use the default completion UI.
|
||||
:hook (completion-list-mode . consult-preview-at-point-mode)
|
||||
|
||||
;; The :init configuration is always executed (Not lazy)
|
||||
:init
|
||||
|
||||
;; Optionally configure the register formatting. This improves the register
|
||||
;; preview for `consult-register', `consult-register-load',
|
||||
;; `consult-register-store' and the Emacs built-ins.
|
||||
(setq register-preview-delay 0.5
|
||||
register-preview-function #'consult-register-format)
|
||||
|
||||
;; Optionally tweak the register preview window.
|
||||
;; This adds thin lines, sorting and hides the mode line of the window.
|
||||
(advice-add #'register-preview :override #'consult-register-window)
|
||||
|
||||
;; Use Consult to select xref locations with preview
|
||||
(setq xref-show-xrefs-function #'consult-xref
|
||||
xref-show-definitions-function #'consult-xref)
|
||||
|
||||
;; Configure other variables and modes in the :config section,
|
||||
;; after lazily loading the package.
|
||||
:config
|
||||
|
||||
;; Optionally configure preview. The default value
|
||||
;; is 'any, such that any key triggers the preview.
|
||||
;; (setq consult-preview-key 'any)
|
||||
(setq consult-preview-key (kbd "M-."))
|
||||
;; (setq consult-preview-key (list (kbd "<S-down>") (kbd "<S-up>")))
|
||||
;; For some commands and buffer sources it is useful to configure the
|
||||
;; :preview-key on a per-command basis using the `consult-customize' macro.
|
||||
(consult-customize
|
||||
consult-theme :preview-key '(:debounce 0.2 any)
|
||||
consult-ripgrep consult-git-grep consult-grep
|
||||
consult-bookmark consult-recent-file consult-xref
|
||||
consult--source-bookmark consult--source-file-register
|
||||
consult--source-recent-file consult--source-project-recent-file
|
||||
;; :preview-key (kbd "M-.")
|
||||
:preview-key '(:debounce 0.4 any))
|
||||
|
||||
;; Optionally configure the narrowing key.
|
||||
;; Both < and C-+ work reasonably well.
|
||||
(setq consult-narrow-key "<") ;; (kbd "C-+")
|
||||
|
||||
;; Optionally make narrowing help available in the minibuffer.
|
||||
;; You may want to use `embark-prefix-help-command' or which-key instead.
|
||||
;; (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help)
|
||||
|
||||
;; By default `consult-project-function' uses `project-root' from project.el.
|
||||
;; Optionally configure a different project root function.
|
||||
;; There are multiple reasonable alternatives to chose from.
|
||||
;;;; 1. project.el (the default)
|
||||
;; (setq consult-project-function #'consult--default-project--function)
|
||||
;;;; 2. projectile.el (projectile-project-root)
|
||||
;; (autoload 'projectile-project-root "projectile")
|
||||
;; (setq consult-project-function (lambda (_) (projectile-project-root)))
|
||||
;;;; 3. vc.el (vc-root-dir)
|
||||
;; (setq consult-project-function (lambda (_) (vc-root-dir)))
|
||||
;;;; 4. locate-dominating-file
|
||||
;; (setq consult-project-function (lambda (_) (locate-dominating-file "." ".git")))
|
||||
)
|
||||
|
||||
(use-package consult-flycheck)
|
||||
|
||||
(use-package consult-git-log-grep
|
||||
:custom
|
||||
(consult-git-log-grep-open-function #'magit-show-commit))
|
||||
|
||||
(use-package consult-company
|
||||
:bind
|
||||
(:map company-mode-map
|
||||
([remap completion-at-point] . consult-company)))
|
||||
|
||||
(use-package consult-lsp
|
||||
:bind
|
||||
(:map lsp-mode-map
|
||||
([remap xref-find-apropos] . consult-lsp-symbols)))
|
||||
|
||||
;; (use-package consult-projectile)
|
||||
|
||||
(use-package consult-yasnippet)
|
||||
|
||||
;; Alternate completion style
|
||||
|
||||
(use-package orderless
|
||||
:init
|
||||
;; Configure a custom style dispatcher (see the Consult wiki)
|
||||
;; (setq orderless-style-dispatchers '(+orderless-dispatch)
|
||||
;; orderless-component-separator #'orderless-escapable-split-on-space)
|
||||
(setq completion-styles '(orderless basic)
|
||||
completion-category-defaults nil
|
||||
completion-category-overrides '((file (styles partial-completion)))))
|
||||
|
||||
;; Contextual actions
|
||||
|
||||
(use-package marginalia
|
||||
:config
|
||||
(marginalia-mode))
|
||||
|
||||
(use-package embark
|
||||
:bind
|
||||
(("C-." . embark-act) ;; pick some comfortable binding
|
||||
("C-;" . embark-dwim) ;; good alternative: M-.
|
||||
("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'
|
||||
:init
|
||||
;; Optionally replace the key help with a completing-read interface
|
||||
(setq prefix-help-command #'embark-prefix-help-command)
|
||||
:config
|
||||
;; Hide the mode line of the Embark live/completions buffers
|
||||
(add-to-list 'display-buffer-alist
|
||||
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
|
||||
nil
|
||||
(window-parameters (mode-line-format . none)))))
|
||||
|
||||
(use-package embark-consult
|
||||
:hook
|
||||
(embark-collect-mode . consult-preview-at-point-mode))
|
||||
|
||||
;; Org-mode
|
||||
|
||||
; No line numbers in org-mode
|
||||
(dolist (mode '(org-mode-hook))
|
||||
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||
|
||||
(setq org-startup-indented t ; Indentation
|
||||
org-pretty-entities t ; Rich text/Special chars
|
||||
org-hide-emphasis-markers t ; Hide markup - see org-appear
|
||||
org-startup-with-inline-images t ; Image previews
|
||||
org-image-actual-width '(300))
|
||||
|
||||
(use-package org-appear
|
||||
:hook (org-mode . org-appear-mode))
|
||||
|
||||
(use-package mixed-pitch
|
||||
:hook
|
||||
(text-mode . mixed-pitch-mode)
|
||||
:config
|
||||
(set-face-attribute 'default nil :font "IBM Plex Mono Light" :height 105)
|
||||
(set-face-attribute 'fixed-pitch nil :font "IBM Plex Mono Light")
|
||||
(set-face-attribute 'variable-pitch nil :font "DejaVu Sans"))
|
||||
;(add-hook 'mixed-pitch-mode-hook #'solaire-mode-reset)
|
||||
|
||||
(use-package org-superstar
|
||||
:hook
|
||||
(org-mode . org-superstar-mode)
|
||||
:config
|
||||
(setq org-superstar-special-todo-items t))
|
||||
|
||||
;; LSP
|
||||
|
||||
(use-package lsp-mode
|
||||
:init
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
:commands (lsp lsp-deferred)
|
||||
:hook
|
||||
((c-mode . lsp)
|
||||
(c++-mode . lsp)
|
||||
(go-mode . lsp)
|
||||
(java-mode . lsp)
|
||||
(js-mode . lsp)
|
||||
(latex-mode . lsp)
|
||||
(python-mode . lsp)
|
||||
(rust-mode . lsp)
|
||||
(tex-mode . lsp)
|
||||
(typescript-mode . lsp)
|
||||
(web-mode . lsp)
|
||||
(zig-mode . lsp)
|
||||
(lsp-mode . lsp-enable-which-key-integration))
|
||||
:custom
|
||||
(lsp-eldoc-render-all t)
|
||||
(lsp-idle-delay 0.6)
|
||||
;; (lsp-rust-analyzer-cargo-watch-command "clippy")
|
||||
;; (lsp-rust-analyzer-server-display-inlay-hints t)
|
||||
;; (lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
||||
;; (lsp-rust-analyzer-display-chaining-hints t)
|
||||
;; (lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
||||
;; (lsp-rust-analyzer-display-closure-return-type-hints t)
|
||||
;; (lsp-rust-analyzer-display-parameter-hints nil)
|
||||
;; (lsp-rust-analyzer-display-reborrow-hints nil)
|
||||
:config
|
||||
(setq lsp-prefer-flymake nil)) ; prefer lsp-ui (flycheck) to flymake
|
||||
; (setq lsp-disabled-clients '(clangd))) ; prefer ccls to clangd
|
||||
; :bind
|
||||
; (:map lsp-mode-map
|
||||
; ("TAB" . completion-at-point)))
|
||||
|
||||
(use-package lsp-ui
|
||||
:requires lsp-mode flycheck
|
||||
:hook (lsp-mode . lsp-ui-mode)
|
||||
:commands lsp-ui-mode
|
||||
:config
|
||||
(setq lsp-ui-doc-enable t)
|
||||
(setq lsp-ui-doc-use-childframe t)
|
||||
(setq lsp-ui-doc-position 'bottom-and-right)
|
||||
(setq lsp-ui-doc-include-signature t)
|
||||
(setq lsp-ui-sideline-enable t)
|
||||
(setq lsp-ui-sideline-show-hover t)
|
||||
(setq lsp-ui-flycheck-enable t)
|
||||
(setq lsp-ui-flycheck-list-position 'right)
|
||||
(setq lsp-ui-flycheck-live-reporting t)
|
||||
(setq lsp-ui-peek-enable t)
|
||||
(setq lsp-ui-peek-list-width 60)
|
||||
(setq lsp-ui-peek-peek-height 25)
|
||||
(lsp-ui-doc-show))
|
||||
|
||||
|
||||
;; Text completion
|
||||
|
||||
(use-package company
|
||||
:config
|
||||
(global-company-mode 1)
|
||||
(setq company-global-modes '(not gud-mode))
|
||||
:custom
|
||||
(company-idle-delay 0)
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-tooltip-align-annotations t)
|
||||
:bind
|
||||
(:map company-active-map
|
||||
("RET" . nil)
|
||||
("[return]" . nil)
|
||||
("TAB" . company-complete-selection)
|
||||
("<tab>" . company-complete-selection)
|
||||
("C-n" . company-select-next)
|
||||
("C-p" . company-select-previous)))
|
||||
|
||||
;; Debugging
|
||||
|
||||
(use-package dap-mode
|
||||
:after lsp-mode
|
||||
:commands dap-debug
|
||||
:config
|
||||
(dap-ui-mode 1)
|
||||
(dap-tooltip-mode 1)
|
||||
(eval-when-compile
|
||||
(require 'cl-lib))
|
||||
(require 'dap-python)
|
||||
;(require 'dap-node)
|
||||
(require 'dap-lldb)
|
||||
(require 'dap-gdb-lldb)
|
||||
(dap-gdb-lldb-setup)
|
||||
(dap-register-debug-template
|
||||
"Rust :: LLDB Run Configuration"
|
||||
(list :type "lldb"
|
||||
:request "launch"
|
||||
:name "LLDB::Run"
|
||||
:gdbpath "rust-lldb"))
|
||||
:bind
|
||||
(:map dap-mode-map
|
||||
("<f5>" . dap-debug)
|
||||
("<f10>" . dap-next)
|
||||
("<f11>" . dap-step-in)
|
||||
("S-<f5>" . dap-disconnect)
|
||||
("C-S-<f5>" . dap-debug-restart)))
|
||||
|
||||
(use-package realgud)
|
||||
|
||||
(use-package realgud-lldb)
|
||||
|
||||
;; Treemacs
|
||||
(use-package treemacs
|
||||
:bind
|
||||
(:map global-map
|
||||
("M-0" . treemacs-select-window)
|
||||
("C-x t 1" . treemacs-delete-other-windows)
|
||||
("C-x t t" . treemacs)
|
||||
("C-x t B" . treemacs-bookmark)
|
||||
("C-x t C-t" . treemacs-find-file)
|
||||
("C-x t M-t" . treemacs-find-tag)))
|
||||
|
||||
(use-package lsp-treemacs
|
||||
:config
|
||||
(lsp-treemacs-sync-mode 1))
|
||||
|
||||
;; Syntax checking
|
||||
(use-package flycheck
|
||||
:hook (lsp-mode . flycheck-mode)
|
||||
:config
|
||||
(setq flycheck-python-flake8-executable "flake8"))
|
||||
|
||||
;; Git
|
||||
(use-package magit
|
||||
:bind ("C-M-;" . magit-status)
|
||||
:commands (magit-status magit-get-current-branch)
|
||||
:custom
|
||||
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
|
||||
|
||||
;;; Languages/Tools
|
||||
|
||||
;; Highlighting/Formatting
|
||||
|
||||
(use-package apheleia
|
||||
:init
|
||||
(apheleia-global-mode +1))
|
||||
|
||||
(use-package tree-sitter
|
||||
:config
|
||||
(global-tree-sitter-mode)
|
||||
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
|
||||
|
||||
(use-package tree-sitter-langs
|
||||
:after tree-sitter)
|
||||
|
||||
;; C/C++
|
||||
|
||||
(setq dap-lldb-debug-program '("/usr/bin/lldb-vscode"))
|
||||
(setq-default c-default-style "k&r")
|
||||
(setq-default c-basic-offset 2)
|
||||
|
||||
;; (use-package ccls
|
||||
;; :hook ((c-mode c++-mode objc-mode cuda-mode) .
|
||||
;; (lambda () (require 'ccls) (lsp))))
|
||||
|
||||
;(use-package modern-cpp-font-lock
|
||||
; :config
|
||||
; (modern-c++-font-lock-global-mode))
|
||||
|
||||
;; Golang
|
||||
|
||||
;; (use-package go-mode
|
||||
;; :config
|
||||
;; (add-hook 'before-save-hook #'lsp-organize-imports))
|
||||
|
||||
;; Java
|
||||
|
||||
;(use-package lsp-java)
|
||||
|
||||
;; JavaScript/TypeScript, HTML, CSS
|
||||
|
||||
(setq css-indent-level 2)
|
||||
(setq css-indent-offset 2)
|
||||
(setq js-indent-level 2)
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.mjs\\'" . js-mode))
|
||||
|
||||
(use-package js2-mode
|
||||
:config
|
||||
(add-to-list 'interpreter-mode-alist '("#!/usr/bin/env node" . js2-mode))
|
||||
;(setq js2-strict-missing-semi-warning t)
|
||||
(setq js2-mode-show-strict-warnings t)
|
||||
:hook (js-mode . js2-minor-mode))
|
||||
|
||||
(use-package typescript-mode
|
||||
:config
|
||||
(setq typescript-indent-level 2)
|
||||
:mode ("\\.ts\\'" . typescript-mode)
|
||||
("\\.tsx\\'" . typescript-mode))
|
||||
|
||||
;; (use-package restclient
|
||||
;; :init
|
||||
;; (use-package company-restclient)
|
||||
;; :mode ("\\.http\\'" . restclient-mode))
|
||||
|
||||
(use-package rainbow-mode
|
||||
:hook
|
||||
((js-mode . rainbow-mode)
|
||||
(typescript-mode . rainbow-mode)
|
||||
(web-mode . rainbow-mode)))
|
||||
|
||||
;; (use-package skewer-mode
|
||||
;; :init
|
||||
;; (setq httpd-port 8080)
|
||||
;; :hook
|
||||
;; (('js-mode-hook 'skewer-mode)
|
||||
;; ('css-mode-hook 'skewer-css-mode)
|
||||
;; ('html-mode-hook 'skewer-html-mode)))
|
||||
|
||||
;; (use-package skewer-reload-stylesheets
|
||||
;; :hook
|
||||
;; (('css-mode-hook 'skewer-reload-stylesheets-start-editing)
|
||||
;; ('scss-mode-hook 'skewer-reload-stylesheets-start-editing)))
|
||||
|
||||
;; (use-package simple-httpd)
|
||||
|
||||
(use-package web-mode
|
||||
:config
|
||||
(setq web-mode-code-indent-offset 2)
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-attribute-indent-offset 2)
|
||||
:mode
|
||||
(("\\.phtml\\'" . web-mode)
|
||||
("\\.tpl\\.php\\'" . web-mode)
|
||||
("\\.jsp\\'" . web-mode)
|
||||
("\\.as[cp]x\\'" . web-mode)
|
||||
("\\.erb\\'" . web-mode)
|
||||
("\\.mustache\\'" . web-mode)
|
||||
("\\.djhtml\\'" . web-mode)
|
||||
("\\.jst.ejs\\'" . web-mode)
|
||||
("\\.html?\\'" . web-mode)))
|
||||
|
||||
(use-package jsdoc
|
||||
:straight (jsdoc :type git :host github :repo "isamert/jsdoc.el")
|
||||
:bind ("C-c C-n" . jsdoc))
|
||||
|
||||
;; LaTeX
|
||||
|
||||
;; (use-package lsp-latex)
|
||||
|
||||
;; (setq lsp-tex-server 'digestif)
|
||||
|
||||
|
||||
;; Protocol Buffers
|
||||
|
||||
;; (use-package protobuf-mode)
|
||||
|
||||
;; Python
|
||||
|
||||
(setq dap-python-debugger 'debugpy)
|
||||
|
||||
(use-package lsp-pyright
|
||||
:hook (python-mode . (lambda ()
|
||||
(require 'lsp-pyright)
|
||||
(lsp)))) ; or lsp-deferred
|
||||
|
||||
(use-package numpydoc
|
||||
:after python
|
||||
:bind (:map python-mode-map
|
||||
("C-c C-n" . numpydoc-generate))
|
||||
:config
|
||||
(setq numpydoc-insert-examples-block nil))
|
||||
|
||||
(use-package conda
|
||||
:init
|
||||
(setq conda-anaconda-home (expand-file-name "/opt/miniconda3"))
|
||||
(setq conda-env-home-directory (expand-file-name "~/.conda/envs"))
|
||||
(conda-env-initialize-interactive-shells)
|
||||
;(conda-env-autoactivate-mode)
|
||||
:hook
|
||||
('find-file-hook . (lambda ()
|
||||
(when (bound-and-true-p conda-project-env-path)
|
||||
(conda-env-activate-for-buffer)))))
|
||||
|
||||
;; Rust
|
||||
|
||||
(use-package rustic
|
||||
:ensure
|
||||
:bind (:map rustic-mode-map
|
||||
("M-j" . lsp-ui-imenu)
|
||||
("M-?" . lsp-find-references)
|
||||
("C-c C-c l" . flycheck-list-errors)
|
||||
("C-c C-c a" . lsp-execute-code-action)
|
||||
("C-c C-c r" . lsp-rename)
|
||||
("C-c C-c q" . lsp-workspace-restart)
|
||||
("C-c C-c Q" . lsp-workspace-shutdown)
|
||||
("C-c C-c s" . lsp-rust-analyzer-status)
|
||||
("C-c C-c e" . lsp-rust-analyzer-expand-macro)
|
||||
("C-c C-c d" . dap-hydra)
|
||||
("C-c C-c h" . lsp-ui-doc-glance)))
|
||||
:config
|
||||
;; uncomment for less flashiness
|
||||
;; (setq lsp-eldoc-hook nil)
|
||||
;; (setq lsp-enable-symbol-highlighting nil)
|
||||
;; (setq lsp-signature-auto-activate nil)
|
||||
|
||||
;; comment to disable rustfmt on save
|
||||
;; (add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
||||
|
||||
;; (defun rk/rustic-mode-hook ()
|
||||
;; ;; so that run C-c C-c C-r works without having to confirm, but don't try to
|
||||
;; ;; save rust buffers that are not file visiting. Once
|
||||
;; ;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
|
||||
;; ;; no longer be necessary.
|
||||
;; (when buffer-file-name
|
||||
;; (setq-local buffer-save-without-query t))
|
||||
;; (add-hook 'before-save-hook 'lsp-format-buffer nil t))
|
||||
|
||||
;; TOML config files
|
||||
|
||||
(use-package toml-mode)
|
||||
|
||||
;; Zig
|
||||
|
||||
;(use-package zig-mode
|
||||
; :custom (zig-format-on-save nil)
|
||||
; :config
|
||||
; (add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
||||
; (make-lsp-client
|
||||
; :new-connection (lsp-stdio-connection "/usr/bin/zls")
|
||||
; :major-modes '(zig-mode)
|
||||
; :server-id 'zls))
|
||||
|
||||
;; Templating
|
||||
(use-package yasnippet
|
||||
:bind
|
||||
("C-c y s" . yas-insert-snippet)
|
||||
("C-c y v" . yas-visit-snippet-file)
|
||||
:config
|
||||
(add-to-list 'yas-snippet-dirs "~/.emacs.d/snippets")
|
||||
(yas-reload-all)
|
||||
(yas-global-mode))
|
||||
|
||||
(use-package yasnippet-snippets)
|
||||
;;; End init.el
|
11
dot_gitconfig
Normal file
11
dot_gitconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
[user]
|
||||
name = Andrew Scott
|
||||
email = git@andyscott.me
|
||||
signingKey = 7CD5A5977E4931C1
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[commit]
|
||||
pgpsign = true
|
||||
gpgsign = true
|
||||
[pull]
|
||||
rebase = false
|
3
dot_local/bin/executable_killall-redshift
Normal file
3
dot_local/bin/executable_killall-redshift
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
killall -q redshift
|
6
dot_local/bin/executable_mirror-outputs
Normal file
6
dot_local/bin/executable_mirror-outputs
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
## Simple script to mirror all connected displays for presentations
|
||||
|
||||
RESOLUTION=3840x2160
|
||||
|
||||
xrandr --listmonitors | sed -n '1!p' | sed -e 's/\s[0-9].*\s\([a-zA-Z0-9\-]*\)$/\1/g' | xargs -n 1 -- bash -xc 'xrandr --output $0 --mode '$RESOLUTION' --pos 0x0 --rotate normal'
|
13
dot_local/bin/executable_single-polybar-launcher
Normal file
13
dot_local/bin/executable_single-polybar-launcher
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch Polybar, using default config location ~/.config/polybar/config
|
||||
polybar one -r --config=~/.config/polybar/config.ini &
|
||||
#polybar two -r --config=~/.config/polybar/config.ini &
|
||||
|
||||
echo "Polybar launched..."
|
18
dot_local/bin/executable_tint2-launcher
Normal file
18
dot_local/bin/executable_tint2-launcher
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q tint2
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x tint2 >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch tint2
|
||||
tint2 & disown
|
||||
|
||||
# Final command won't work without sleep
|
||||
sleep 1 &&
|
||||
|
||||
# Keep tint2 below other windows in fullscreen
|
||||
if pgrep -x "tint2" > /dev/null ; then
|
||||
xdo above -t "$(xdo id -N Bspwm -n root | sort | head -n 1)" $(xdo id -n tint2)
|
||||
fi
|
9
dot_local/bin/executable_toggle-wifi
Normal file
9
dot_local/bin/executable_toggle-wifi
Normal file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
## A simple script to turn wifi on/off
|
||||
|
||||
if [ $(nmcli radio wifi | awk '/led/ {print}') = 'enabled' ] ; then
|
||||
nmcli radio wifi off
|
||||
else
|
||||
nmcli radio wifi on
|
||||
fi
|
||||
|
16
dot_profile
Normal file
16
dot_profile
Normal file
|
@ -0,0 +1,16 @@
|
|||
# make Java behave when not using a DE
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
# move $GOPATH to .local
|
||||
export GOPATH="$HOME/.local/opt/go"
|
||||
export PATH="$HOME/.local/opt/go/bin:$PATH"
|
||||
# add .local/bin to $PATH
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
# make GTK apps scale correctly on hidpi
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 thunar
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE="0.50 Simple-scan"
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 lutris
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 spotify
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 pinta
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 Gajim
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 Ristretto
|
||||
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 ghex
|
52
dot_xinitrc
Normal file
52
dot_xinitrc
Normal file
|
@ -0,0 +1,52 @@
|
|||
#!/bin/sh
|
||||
|
||||
userresources=$HOME/.Xresources
|
||||
usermodmap=$HOME/.Xmodmap
|
||||
sysresources=/etc/X11/xinit/.Xresources
|
||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
||||
|
||||
# merge in defaults and keymaps
|
||||
|
||||
if [ -f $sysresources ]; then
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
xrdb -merge $sysresources
|
||||
|
||||
fi
|
||||
|
||||
if [ -f $sysmodmap ]; then
|
||||
xmodmap $sysmodmap
|
||||
fi
|
||||
|
||||
if [ -f "$userresources" ]; then
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
xrdb -merge "$userresources"
|
||||
|
||||
fi
|
||||
|
||||
if [ -f "$usermodmap" ]; then
|
||||
xmodmap "$usermodmap"
|
||||
fi
|
||||
|
||||
# start some nice programs
|
||||
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
||||
xsetroot -cursor_name left_ptr &
|
||||
exec bspwm
|
Loading…
Reference in a new issue