chore: make dots public
This commit is contained in:
commit
3d4784d386
103 changed files with 9459 additions and 0 deletions
20
.chezmoi.yaml.tmpl
Normal file
20
.chezmoi.yaml.tmpl
Normal file
|
@ -0,0 +1,20 @@
|
|||
encryption: gpg
|
||||
|
||||
gpg:
|
||||
recipient: hey@winston.sh
|
||||
|
||||
edit:
|
||||
command: nvim
|
||||
diff:
|
||||
command: nvim
|
||||
args:
|
||||
- "-d"
|
||||
- "{{`{{ .Destination }}`}}"
|
||||
- "{{`{{ .Target }}`}}"
|
||||
merge:
|
||||
command: nvim
|
||||
args:
|
||||
- "-d"
|
||||
- "{{`{{ .Destination }}`}}"
|
||||
- "{{`{{ .Source }}"
|
||||
- "{{ .Target }}`}}"
|
14
.chezmoiexternal.yaml
Normal file
14
.chezmoiexternal.yaml
Normal file
|
@ -0,0 +1,14 @@
|
|||
.antigen/antigen.zsh:
|
||||
type: file
|
||||
url: "https://raw.githubusercontent.com/zsh-users/antigen/master/bin/antigen.zsh"
|
||||
refreshPeriod: 168h
|
||||
|
||||
.config/tmux/plugins/tpm:
|
||||
type: git-repo
|
||||
url: "https://github.com/tmux-plugins/tpm"
|
||||
refreshPeriod: 168h
|
||||
|
||||
.config/wezterm/colors/catppuccin:
|
||||
type: git-repo
|
||||
url: "https://github.com/catppuccin/wezterm.git"
|
||||
refreshPeriod: 168h
|
21
.chezmoiignore
Normal file
21
.chezmoiignore
Normal file
|
@ -0,0 +1,21 @@
|
|||
# ignore the README, of course...
|
||||
README.md
|
||||
{{- if ne .chezmoi.os "linux" }}
|
||||
# ignore linux configuration
|
||||
.config/dunst/
|
||||
.config/i3/
|
||||
.config/polybar/
|
||||
.config/rofi/
|
||||
.config/picom.conf
|
||||
.config/redshift.conf
|
||||
.local/bin/launch_polybar
|
||||
.xscreensaver
|
||||
.Xmodmap
|
||||
{{- end }}
|
||||
{{- if ne .chezmoi.os "darwin" }}
|
||||
# ignore macOS configuration
|
||||
.config/sketchybar/
|
||||
.config/skhd/
|
||||
.config/yabai/
|
||||
.qutebrowser
|
||||
{{- end }}
|
2
dot_Xmodmap
Normal file
2
dot_Xmodmap
Normal file
|
@ -0,0 +1,2 @@
|
|||
pointer = 1 2 3 5 4 7 6 8 9 10 11 12
|
||||
clear Lock
|
16
dot_config/bugwarrior/encrypted_bugwarriorrc.asc
Normal file
16
dot_config/bugwarrior/encrypted_bugwarriorrc.asc
Normal file
|
@ -0,0 +1,16 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdA/A+ep8XtO5CmUVsTReTRTwcekGyYT5rYVLHfp+0wZHIw
|
||||
ReGpYdfjRu8/fyxHAXuu8bjfoLeowpwt2UWl+7NIOXvDlNB4N65hm52OCFYWBRJf
|
||||
0sEAAc3clPjQia5ZeqEqNUWc/lhg0xmfuq6bWmmr9gC1jinhCB+RcpUKIFcHxBmx
|
||||
UxO6TjKz/oQVGubQju15AzjE2w3DmiZXTnPBTD7Pnu68wBCPcoVQZYVxlPpappc+
|
||||
E/mI2xrIg6riES+QZkajQPJvsI7sSCyQVct3y3eAv/UX+7NDHujtEcrEIPvR5MBW
|
||||
1/OCE8rQlqzqwxL1DazaIuISRF6QVCdic0VEHTCSZzoxxIkAca8vJvK0gSshgyhv
|
||||
mBjR2EhJFcW7nwP4LfSuOGRVyr4+lXeoNFE1Hj4m0JJHZ0bs63tFClLUHL3SuLfs
|
||||
VG9ii6PZCN0sgfS00VKyv9fc6PHIV6hg5Pg6q+RijLQ+cFJKl6y8kgSx5xWzjpAY
|
||||
HlNxtwOMe5Zz+gGkEZrBnq0IgWOBL5wM7WjHsxxU4/QvqB8wzzfzOTSQQd0T76pq
|
||||
rd/IH/phCf+CA9jTvxPICD822BgoIwqOKGlh65RBuA/+5qn0MbEvuW+tQkaB2pR8
|
||||
pkGVl5wGMfaXLb8U8PEKQVNxi8f6gw4JSLIvxAlz8re++pOhr5FyHCb7i1GJHfGp
|
||||
I5dlbQ4/XaH7OiorM94CCZGDug==
|
||||
=TMnT
|
||||
-----END PGP MESSAGE-----
|
152
dot_config/dunst/dunstrc
Normal file
152
dot_config/dunst/dunstrc
Normal file
|
@ -0,0 +1,152 @@
|
|||
# See dunst(5) for all configuration options
|
||||
# vim:ft=cfg
|
||||
[global]
|
||||
frame_width = 3
|
||||
frame_color = "#89B4FA"
|
||||
font = Victor Mono 12
|
||||
|
||||
width = 300
|
||||
height = 300
|
||||
|
||||
# Allow a small subset of html markup:
|
||||
markup = yes
|
||||
|
||||
# The format of the message.
|
||||
format = "<b>%a</b>\n%s %p\n%b"
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# The frequency with wich text that is longer than the notification
|
||||
# window allows bounces back and forth.
|
||||
# This option conflicts with "word_wrap".
|
||||
# Set to 0 to disable.
|
||||
bounce_freq = 5
|
||||
|
||||
|
||||
# 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 = no
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = yes
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
transparency = 5
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
idle_threshold = 30
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# keyboard: follow window with keyboard focus
|
||||
follow = keyboard
|
||||
|
||||
# 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
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
# The height of a single line. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
# This adds empty space above and under the text.
|
||||
line_height = 2
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 1
|
||||
|
||||
# Padding between text and separator.
|
||||
# padding = 8
|
||||
padding = 2
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 4
|
||||
|
||||
# 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
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = firefox
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/Papirus-Dark/16x16/legacy/
|
||||
|
||||
min_icon_size=24
|
||||
max_icon_size=64
|
||||
|
||||
[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 = mod1+space
|
||||
|
||||
# Close all notifications.
|
||||
# close_all = ctrl+shift+space
|
||||
close_all = ctrl+mod1+space
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1".
|
||||
history = ctrl+mod4+h
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+mod1+c
|
||||
|
||||
[urgency_low]
|
||||
background = "#1e1e2e"
|
||||
foreground = "#cdd6f4"
|
||||
|
||||
[urgency_normal]
|
||||
background = "#1e1e2e"
|
||||
foreground = "#cdd6f4"
|
||||
|
||||
[urgency_critical]
|
||||
background = "#1e1e2e"
|
||||
foreground = "#cdd6f4"
|
||||
frame_color = "#fab387"
|
11
dot_config/git/encrypted_personal.asc
Normal file
11
dot_config/git/encrypted_personal.asc
Normal file
|
@ -0,0 +1,11 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAnRakjI8f1Sw1YzEkKfnYr6DjhhMgi+DvrqTiY2dRTEcw
|
||||
t9LEuARvsckZDvzt7e9V+hTCPHLFAyhg1OUPXwfoLZAIy9tYdA7Kl/NnffPEeccy
|
||||
0sALAW+7vpMXEdu2fQgMH/jKwwSjQLjm7uTX2t2aToYP4DNsuvbbZhrOciF2Y6uf
|
||||
UaTL4ao9tqZhuhDl3L0F/+l+MUU/x0DTud5xaV97FcVPJkOoEEEDmWZ65Rg0BO6m
|
||||
r17fnuAkg5w+zVtXdpWB6dNeGURewBBL2t8uSccWhmrxnAQLWpMc8vZdMY2+884y
|
||||
CPHY/Eb56MsYoCi7JkSukAtgqGDdtYxT/nQH7Ev7o125nvjkPklLgyPbtY54SCp2
|
||||
8XId9/4vG4P23sTC6Jc=
|
||||
=mlWV
|
||||
-----END PGP MESSAGE-----
|
11
dot_config/git/encrypted_pseudonym.asc
Normal file
11
dot_config/git/encrypted_pseudonym.asc
Normal file
|
@ -0,0 +1,11 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAH6u8KuzZ7V+9Rh1r8DyA1En64bqAjuoIUe9YRgprSH4w
|
||||
vo2DqLAss0dn67m9IOQWhvT+xY5YV5khhrPNbuOE8TlPfkxF05C8wnuOesZd6S/A
|
||||
0sAAAUMgdUgfx/TyKWQGYQYwj44m26IUWGNVJDZ4lQXbE4Z+pEaQguohsoeKTEhQ
|
||||
A890l1IryH317sbFcgR37kHKMoL8T2cDbjfRWsaIZOnioXUS6RcdzkkInE36enge
|
||||
PwxThiiSk179DYFkKQUfoq54QXIhK0x3BImbzbiaxCvAS55Np1jzWeQMF7h+IK5/
|
||||
nxF3kQxJOZbGL4b0IfixgrIi3P1xAo/QY1xTUGNgobhH/+cOc9dwahY0xqUyvytx
|
||||
+Jy1
|
||||
=AH1k
|
||||
-----END PGP MESSAGE-----
|
11
dot_config/git/encrypted_work.asc
Normal file
11
dot_config/git/encrypted_work.asc
Normal file
|
@ -0,0 +1,11 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdACJl4yfv5C/LftHTmzr6+8ke7CVsR10M0J+HMw65n6Tsw
|
||||
2j2U+6Shvb5yXOw0dljSjpCdoPKw4bgXkTkMoeh5uDTGAXr3c2YhGJLeS+T9LEoE
|
||||
0sAPAQShiPnSYvZrTMlYT/PPLOEJaN7wz3IDIK1MXL1876YdUtve3YybQk36wPoJ
|
||||
xw1vsXGwVrw7Ia3SQIGPANkXWx6GKYWjbbrYTBj2gVkG79CV5DTL8vCQLHNAjuwR
|
||||
JiLEOuuOKUv19QjEcfA0LJOIZSEEKj9XaFYWavqijqOFU560AZY1cyldq63Mg6wg
|
||||
O0j7L0LGg0E/GJ+if2og4FJ7z5ML1g6UUUoigDGfAH4XwhK3Y5DExPZtUy0/W4zM
|
||||
+LicLJATW4ziaC0lk5IG0xgm
|
||||
=1ncJ
|
||||
-----END PGP MESSAGE-----
|
3
dot_config/git/ignore
Normal file
3
dot_config/git/ignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
.DS_Store
|
||||
.idea
|
||||
*.log
|
337
dot_config/i3/config
Normal file
337
dot_config/i3/config
Normal file
|
@ -0,0 +1,337 @@
|
|||
# vim:ft=i3config
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
||||
set $mod Mod4
|
||||
|
||||
# Set DPI value
|
||||
set_from_resource $dpi Xft.dpi 96
|
||||
|
||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
||||
default_border pixel 2
|
||||
default_floating_border normal
|
||||
|
||||
# Hide borders
|
||||
hide_edge_borders none
|
||||
|
||||
# change borders
|
||||
bindsym $mod+u border none
|
||||
bindsym $mod+y border pixel 2
|
||||
bindsym $mod+n border normal
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font xft:Inter 11
|
||||
|
||||
# Use Mouse+$mod to drag floating windows
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Shift+Return exec wezterm
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Start Applications
|
||||
bindsym $mod+F2 exec firefox
|
||||
bindsym $mod+F3 exec wezterm start ranger
|
||||
bindsym $mod+ShiftF3 exec pcmanfm
|
||||
bindsym $mod+t exec --no-startup-id pkill picom
|
||||
bindsym $mod+Ctrl+p --release exec --no-startup-id flameshot gui
|
||||
bindsym $mod+Ctrl+t exec --no-startup-id picom --experimental-backends -b
|
||||
bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
|
||||
|
||||
focus_follows_mouse yes
|
||||
|
||||
# change focus
|
||||
bindsym $mod+Ctrl+h focus left
|
||||
bindsym $mod+Ctrl+j focus down
|
||||
bindsym $mod+Ctrl+k focus up
|
||||
bindsym $mod+Ctrl+l focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Ctrl+Left focus left
|
||||
bindsym $mod+Ctrl+Down focus down
|
||||
bindsym $mod+Ctrl+Up focus up
|
||||
bindsym $mod+Ctrl+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+h move left
|
||||
bindsym $mod+Shift+j move down
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+l move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# workspace back and forth (with/without active container)
|
||||
workspace_auto_back_and_forth no
|
||||
|
||||
# split orientation
|
||||
bindsym $mod+q split toggle
|
||||
|
||||
# toggle fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+d floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+d focus mode_toggle
|
||||
|
||||
# toggle sticky
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+Tab move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+Tab scratchpad show
|
||||
|
||||
# Workspace names
|
||||
# to display names or symbols instead of plain workspace numbers you can use
|
||||
# something like: set $ws1 1:mail
|
||||
# set $ws2 2:
|
||||
set $ws1 1
|
||||
set $ws2 2
|
||||
set $ws3 3
|
||||
set $ws4 4
|
||||
set $ws5 5
|
||||
set $ws6 6
|
||||
set $ws7 7
|
||||
set $ws8 8
|
||||
set $ws9 9
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+Ctrl+1 workspace $ws1
|
||||
bindsym $mod+Ctrl+2 workspace $ws2
|
||||
bindsym $mod+Ctrl+3 workspace $ws3
|
||||
bindsym $mod+Ctrl+4 workspace $ws4
|
||||
bindsym $mod+Ctrl+5 workspace $ws5
|
||||
bindsym $mod+Ctrl+6 workspace $ws6
|
||||
bindsym $mod+Ctrl+7 workspace $ws7
|
||||
bindsym $mod+Ctrl+8 workspace $ws8
|
||||
bindsym $mod+Ctrl+9 workspace $ws9
|
||||
bindsym $mod+Ctrl+0 workspace $ws10
|
||||
|
||||
# Move to workspace with focused container
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
|
||||
|
||||
### Open specific applications in specific modes
|
||||
# fullscreen
|
||||
for_window [class="Oblogout"] fullscreen enable
|
||||
|
||||
# floating sticky
|
||||
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
||||
for_window [class="Nitrogen"] floating enable sticky enable border normal
|
||||
for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal
|
||||
for_window [class="qt5ct"] floating enable sticky enable border normal
|
||||
for_window [class="1Password"] floating enable sticky enable border pixel 1
|
||||
for_window [title="Blender Render"] floating enable border pixel 1
|
||||
for_window [title="(?i)SteamTinkerLaunch"] floating enable border pixel 1
|
||||
|
||||
# floating with 1px border
|
||||
for_window [class="Galculator"] floating enable border pixel 1
|
||||
for_window [title="alsamixer"] floating enable border pixel 1
|
||||
|
||||
# floating with normal border (titled)
|
||||
for_window [class="(?i)System-config-printer.py"] floating enable border normal
|
||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
||||
for_window [class="GParted"] floating enable border normal
|
||||
for_window [class="Manjaro Settings Manager"] floating enable border normal
|
||||
for_window [class="Simple-scan"] floating enable border normal
|
||||
for_window [class="Timeset-gui"] floating enable border normal
|
||||
for_window [class="calamares"] floating enable border normal
|
||||
|
||||
# floating without special settings
|
||||
for_window [class="Clipgrab"] floating enable
|
||||
for_window [class="Lightdm-settings"] floating enable
|
||||
for_window [class="Manjaro-hello"] floating enable
|
||||
for_window [class="Pamac-manager"] floating enable
|
||||
for_window [class="Pavucontrol"] floating enable
|
||||
for_window [class="Xfburn"] floating enable
|
||||
for_window [class="fpakman"] floating enable
|
||||
for_window [class="octopi"] floating enable
|
||||
for_window [title="File Transfer*"] floating enable
|
||||
for_window [title="MuseScore: Play Panel"] floating enable
|
||||
for_window [title="Steam Guard - Computer Authorization Required"] floating enable
|
||||
|
||||
# general WM role settings
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
|
||||
# super special Jetbrains Settings
|
||||
for_window [class="jetbrains-.+" title="Welcome to .+"] floating enable border pixel 1
|
||||
for_window [class="jetbrains-.+" title="win0"] floating enable
|
||||
|
||||
# gksu via yad
|
||||
for_window [class="Yad" title="Authentication"] floating enable
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# Set shut down, restart and locking features
|
||||
bindsym $mod+Escape mode "$mode_system"
|
||||
set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
|
||||
mode "$mode_system" {
|
||||
bindsym l exec --no-startup-id i3exit lock, mode "default"
|
||||
bindsym s exec --no-startup-id i3exit suspend, mode "default"
|
||||
bindsym u exec --no-startup-id i3exit switch_user, mode "default"
|
||||
bindsym e exec --no-startup-id i3exit logout, mode "default"
|
||||
bindsym h exec --no-startup-id i3exit hibernate, mode "default"
|
||||
bindsym r exec --no-startup-id i3exit reboot, mode "default"
|
||||
bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
|
||||
|
||||
# exit system mode: "Enter" or "Escape"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Resize window (you can also use the mouse for that)
|
||||
bindsym $mod+r mode "resize"
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym h resize shrink width 5 px or 5 ppt
|
||||
bindsym j resize grow height 5 px or 5 ppt
|
||||
bindsym k resize shrink height 5 px or 5 ppt
|
||||
bindsym l resize grow width 5 px or 5 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# exit resize mode: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Autostart applications
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec --no-startup-id ~/.local/bin/launch_polybar
|
||||
exec --no-startup-id ~/.fehbg
|
||||
exec --no-startup-id 1password --silent
|
||||
exec --no-startup-id blueman-applet
|
||||
exec --no-startup-id dunst
|
||||
exec --no-startup-id pa-applet
|
||||
exec --no-startup-id pcmanfm -d
|
||||
exec --no-startup-id redshift
|
||||
exec --no-startup-id sleep 1; picom -b
|
||||
|
||||
# xcursor tweak by oberon
|
||||
exec_always --no-startup-id fix_xcursor
|
||||
# caps is also ctrl
|
||||
exec_always --no-startup-id setxkbmap -option "ctrl:nocaps" -option "compose:ralt"
|
||||
|
||||
# Theme colors
|
||||
# class border backgr. text indic. child_border
|
||||
client.focused #F5C2E7 #313244 #CDD6F4 #F5E0DC #FF80BF
|
||||
client.focused_inactive #F5C2E7 #313244 #CDD6F4 #F5E0DC #9580FF
|
||||
client.unfocused #CBA6F7 #313244 #CDD6F4 #F5E0DC #9580FF
|
||||
client.urgent #F38BA8 #313244 #CDD6F4 #F5E0DC #FF9580
|
||||
client.placeholder #F2CDCD #313244 #CDD6F4 #F5E0DC #282A36
|
||||
client.background #F2CDCD
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 8
|
||||
gaps outer 0
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
# gaps inner|outer current|all set|plus|minus <px>
|
||||
# gaps inner all set 10
|
||||
# gaps outer all plus 5
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps off
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
|
||||
smart_borders no_gaps
|
||||
|
||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
mode "$mode_gaps_inner" {
|
||||
bindsym plus gaps inner current plus 5
|
||||
bindsym minus gaps inner current minus 5
|
||||
bindsym 0 gaps inner current set 0
|
||||
|
||||
bindsym Shift+plus gaps inner all plus 5
|
||||
bindsym Shift+minus gaps inner all minus 5
|
||||
bindsym Shift+0 gaps inner all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
mode "$mode_gaps_outer" {
|
||||
bindsym plus gaps outer current plus 5
|
||||
bindsym minus gaps outer current minus 5
|
||||
bindsym 0 gaps outer current set 0
|
||||
|
||||
bindsym Shift+plus gaps outer all plus 5
|
||||
bindsym Shift+minus gaps outer all minus 5
|
||||
bindsym Shift+0 gaps outer all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# rofi instead of drun
|
||||
bindsym $mod+space exec --no-startup-id rofi -show run -dpi $dpi
|
||||
|
||||
# 1password
|
||||
bindsym $mod+backslash exec --no-startup-id 1password --quick-access
|
||||
|
||||
# move workspaces across monitors
|
||||
bindsym $mod+Ctrl+greater move workspace to output right
|
||||
bindsym $mod+Ctrl+less move workspace to output left
|
53
dot_config/khard/khard.conf
Normal file
53
dot_config/khard/khard.conf
Normal file
|
@ -0,0 +1,53 @@
|
|||
# example configuration file for khard version > 0.14.0
|
||||
# place it under ~/.config/khard/khard.conf
|
||||
# This file is parsed by the configobj library. The syntax is described at
|
||||
# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
|
||||
|
||||
[addressbooks]
|
||||
[[default]]
|
||||
path = ~/.local/share/contacts/Default/
|
||||
|
||||
[general]
|
||||
debug = no
|
||||
default_action = list
|
||||
# These are either strings or comma seperated lists
|
||||
editor = nvim
|
||||
merge_editor = nvim -d
|
||||
|
||||
[contact table]
|
||||
# display names by first or last name: first_name / last_name / formatted_name
|
||||
display = first_name
|
||||
# group by address book: yes / no
|
||||
group_by_addressbook = no
|
||||
# reverse table ordering: yes / no
|
||||
reverse = no
|
||||
# append nicknames to name column: yes / no
|
||||
show_nicknames = no
|
||||
# show uid table column: yes / no
|
||||
show_uids = yes
|
||||
# sort by first or last name: first_name / last_name / formatted_name
|
||||
sort = last_name
|
||||
# localize dates: yes / no
|
||||
localize_dates = yes
|
||||
# set a comma separated list of preferred phone number types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_phone_number_type = pref, cell, home
|
||||
# set a comma separated list of preferred email address types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_email_address_type = pref, work, home
|
||||
|
||||
[vcard]
|
||||
# extend contacts with your own private objects
|
||||
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||
# every object label may only contain letters, digits and the - character
|
||||
# example:
|
||||
# private_objects = Jabber, Skype, Twitter
|
||||
# default: , (the empty list)
|
||||
private_objects = Jabber, Skype, Twitter
|
||||
# preferred vcard version: 3.0 / 4.0
|
||||
preferred_version = 3.0
|
||||
# Look into source vcf files to speed up search queries: yes / no
|
||||
search_in_source_files = no
|
||||
# skip unparsable vcard files: yes / no
|
||||
skip_unparsable = no
|
||||
|
108
dot_config/kitty/kitty.conf
Normal file
108
dot_config/kitty/kitty.conf
Normal file
|
@ -0,0 +1,108 @@
|
|||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
# rice {{{
|
||||
# font
|
||||
font_family Victor Mono
|
||||
font_size 14
|
||||
|
||||
# nerd fonts
|
||||
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E62F,U+E700-U+E7C5,U+F000-U+F2E0,U+F300-U+F31C,U+F400-U+F4A9,U+F500-U+F8FF,U+FB26 Symbols Nerd Font
|
||||
|
||||
# window
|
||||
# don't center
|
||||
placement_strategy top-left
|
||||
# don't use pixel-perfect resize mode
|
||||
resize_in_steps yes
|
||||
# width between panes
|
||||
window_border_width 2pt
|
||||
# text alpha in inacive panes
|
||||
inactive_text_alpha 0.8
|
||||
hide_window_decorations yes
|
||||
|
||||
# tab bar
|
||||
active_tab_font_style normal
|
||||
inactive_tab_font_style italic
|
||||
tab_bar_style powerline
|
||||
tab_bar_align left
|
||||
tab_bar_edge bottom
|
||||
tab_powerline_style slanted
|
||||
tab_bar_margin_width 0.0
|
||||
|
||||
include mocha.conf
|
||||
# }}}
|
||||
|
||||
# mouse stuff {{{
|
||||
mouse_hide_wait 0.5
|
||||
detect_urls yes
|
||||
|
||||
# mouse pointer
|
||||
pointer_shape_when_grabbed beam
|
||||
default_pointer_shape arrow
|
||||
|
||||
# url highlighting style and detection
|
||||
url_style single
|
||||
url_prefixes http https file ftp gemini irc gopher mailto news git
|
||||
|
||||
# word detection
|
||||
strip_trailing_spaces never
|
||||
select_by_word_characters @-./_~?&=%+#
|
||||
# }}}
|
||||
|
||||
# other settings {{{
|
||||
enable_audio_bell no
|
||||
editor nvim
|
||||
# }}}
|
||||
|
||||
# tmux-like config {{{
|
||||
# super key mod: CTRL+S
|
||||
# splits ftw, stack is for emulating tmux pane zoom
|
||||
enabled_layouts splits, stack
|
||||
# this emulates zooming panes
|
||||
map ctrl+s>z toggle_layout stack
|
||||
|
||||
## panes
|
||||
# create new panes
|
||||
map ctrl+s>- launch --location=hsplit --cwd=current
|
||||
map ctrl+s>\ launch --location=vsplit --cwd=current
|
||||
# jump to other panes
|
||||
map ctrl+s>h neighboring_window left
|
||||
map ctrl+s>l neighboring_window right
|
||||
map ctrl+s>k neighboring_window up
|
||||
map ctrl+s>j neighboring_window down
|
||||
map ctrl+s>q focus_visible_window
|
||||
# move panes
|
||||
map ctrl+s>ctrl+k move_window up
|
||||
map ctrl+s>ctrl+h move_window left
|
||||
map ctrl+s>ctrl+l move_window right
|
||||
map ctrl+s>ctrl+j move_window down
|
||||
# manipulate panes
|
||||
map ctrl+s>ctrl+r start_resizing_window
|
||||
map ctrl+s>r layout_action rotate
|
||||
map ctrl+s>x close_window
|
||||
# open ui panel to move the pane somewhere else
|
||||
map ctrl+s>m detach_window ask
|
||||
|
||||
## tabs - tmux-like tabs
|
||||
# always show tab bar
|
||||
tab_bar_min_tabs 1
|
||||
# show index for easier switching, show number of panes
|
||||
tab_title_template "{index}: {title}{sup.num_windows if num_windows > 1 else ''}{activity_symbol}{bell_symbol}"
|
||||
map ctrl+s>c new_tab
|
||||
map ctrl+s>n next_tab
|
||||
map ctrl+s>p previous_tab
|
||||
map ctrl+s>1 goto_tab 1
|
||||
map ctrl+s>2 goto_tab 2
|
||||
map ctrl+s>3 goto_tab 3
|
||||
map ctrl+s>4 goto_tab 4
|
||||
map ctrl+s>5 goto_tab 5
|
||||
map ctrl+s>6 goto_tab 6
|
||||
map ctrl+s>7 goto_tab 7
|
||||
map ctrl+s>8 goto_tab 8
|
||||
map ctrl+s>9 goto_tab 9
|
||||
# }}}
|
||||
|
||||
# power mode:
|
||||
# spawn a pane which broadcasts its input to all other panes
|
||||
map F3 launch --allow-remote-control kitty +kitten broadcast
|
||||
# reload config
|
||||
map F5 load_config_file
|
80
dot_config/kitty/latte.conf
Normal file
80
dot_config/kitty/latte.conf
Normal file
|
@ -0,0 +1,80 @@
|
|||
# vim:ft=kitty
|
||||
|
||||
## name: Catppuccin-Latte
|
||||
## author: Pocco81 (https://github.com/Pocco81)
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty/blob/main/latte.conf
|
||||
## blurb: Soothing pastel theme for the high-spirited!
|
||||
|
||||
|
||||
|
||||
# The basic colors
|
||||
foreground #4C4F69
|
||||
background #EFF1F5
|
||||
selection_foreground #EFF1F5
|
||||
selection_background #DC8A78
|
||||
|
||||
# Cursor colors
|
||||
cursor #DC8A78
|
||||
cursor_text_color #EFF1F5
|
||||
|
||||
# URL underline color when hovering with mouse
|
||||
url_color #DC8A78
|
||||
|
||||
# Kitty window border colors
|
||||
active_border_color #7287FD
|
||||
inactive_border_color #9CA0B0
|
||||
bell_border_color #DF8E1D
|
||||
|
||||
# OS Window titlebar colors
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_foreground #EFF1F5
|
||||
active_tab_background #8839EF
|
||||
inactive_tab_foreground #4C4F69
|
||||
inactive_tab_background #9CA0B0
|
||||
tab_bar_background #BCC0CC
|
||||
|
||||
# Colors for marks (marked text in the terminal)
|
||||
mark1_foreground #EFF1F5
|
||||
mark1_background #7287fD
|
||||
mark2_foreground #EFF1F5
|
||||
mark2_background #8839EF
|
||||
mark3_foreground #EFF1F5
|
||||
mark3_background #209FB5
|
||||
|
||||
# The 16 terminal colors
|
||||
|
||||
# black
|
||||
color0 #5C5F77
|
||||
color8 #6C6F85
|
||||
|
||||
# red
|
||||
color1 #D20F39
|
||||
color9 #D20F39
|
||||
|
||||
# green
|
||||
color2 #40A02B
|
||||
color10 #40A02B
|
||||
|
||||
# yellow
|
||||
color3 #DF8E1D
|
||||
color11 #DF8E1D
|
||||
|
||||
# blue
|
||||
color4 #1E66F5
|
||||
color12 #1E66F5
|
||||
|
||||
# magenta
|
||||
color5 #EA76CB
|
||||
color13 #EA76CB
|
||||
|
||||
# cyan
|
||||
color6 #179299
|
||||
color14 #179299
|
||||
|
||||
# white
|
||||
color7 #ACB0BE
|
||||
color15 #BCC0CC
|
80
dot_config/kitty/mocha.conf
Normal file
80
dot_config/kitty/mocha.conf
Normal file
|
@ -0,0 +1,80 @@
|
|||
# vim:ft=kitty
|
||||
|
||||
## name: Catppuccin-Mocha
|
||||
## author: Pocco81 (https://github.com/Pocco81)
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
|
||||
## blurb: Soothing pastel theme for the high-spirited!
|
||||
|
||||
|
||||
|
||||
# The basic colors
|
||||
foreground #CDD6F4
|
||||
background #1E1E2E
|
||||
selection_foreground #1E1E2E
|
||||
selection_background #F5E0DC
|
||||
|
||||
# Cursor colors
|
||||
cursor #F5E0DC
|
||||
cursor_text_color #1E1E2E
|
||||
|
||||
# URL underline color when hovering with mouse
|
||||
url_color #F5E0DC
|
||||
|
||||
# Kitty window border colors
|
||||
active_border_color #B4BEFE
|
||||
inactive_border_color #6C7086
|
||||
bell_border_color #F9E2AF
|
||||
|
||||
# OS Window titlebar colors
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_foreground #11111B
|
||||
active_tab_background #CBA6F7
|
||||
inactive_tab_foreground #CDD6F4
|
||||
inactive_tab_background #181825
|
||||
tab_bar_background #11111B
|
||||
|
||||
# Colors for marks (marked text in the terminal)
|
||||
mark1_foreground #1E1E2E
|
||||
mark1_background #B4BEFE
|
||||
mark2_foreground #1E1E2E
|
||||
mark2_background #CBA6F7
|
||||
mark3_foreground #1E1E2E
|
||||
mark3_background #74C7EC
|
||||
|
||||
# The 16 terminal colors
|
||||
|
||||
# black
|
||||
color0 #45475A
|
||||
color8 #585B70
|
||||
|
||||
# red
|
||||
color1 #F38BA8
|
||||
color9 #F38BA8
|
||||
|
||||
# green
|
||||
color2 #A6E3A1
|
||||
color10 #A6E3A1
|
||||
|
||||
# yellow
|
||||
color3 #F9E2AF
|
||||
color11 #F9E2AF
|
||||
|
||||
# blue
|
||||
color4 #89B4FA
|
||||
color12 #89B4FA
|
||||
|
||||
# magenta
|
||||
color5 #F5C2E7
|
||||
color13 #F5C2E7
|
||||
|
||||
# cyan
|
||||
color6 #94E2D5
|
||||
color14 #94E2D5
|
||||
|
||||
# white
|
||||
color7 #BAC2DE
|
||||
color15 #A6ADC8
|
12
dot_config/msmtp/encrypted_config.asc
Normal file
12
dot_config/msmtp/encrypted_config.asc
Normal file
|
@ -0,0 +1,12 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAvVYo3oVO5iscwOFwogD+NKHS0n0WE7r/L/dLFxBpX0sw
|
||||
CJkY0KU0LIB63VlkU8sdoC2A73IJwLg3KFoRWNT+5C9G2iet8Kbg0DYXmkQ0TwoN
|
||||
0sBcAWYVjnsf54fGYvGtM7SZ+OUW3Q/sKZPLP+5FjcPNGL/TeWmtcSDr+ymSbw6r
|
||||
AsqClFzLHYixD3fVMGnY/rLdj/+C7I2Kia0mUU7A1vWHqDyiRdsZNC0icoe0oDNY
|
||||
WycZuXVDxpZ1ikhYA2ENp0tv5XRrvsuuLXm3RLLSYiY41R1NUepWpve6UimcAzcf
|
||||
Et1Arq7ptW7Gw/etQxx+P40I1tmLJg8g5zlIQM0BZjyq9bt39lUTvYpbvpJXZ/uc
|
||||
/WeW5M5hyEVPY9td8KheCDcESxHXPbbS9lPDYsD3PURQpeyCAEE/C4yaZKpBYPbV
|
||||
qZEawSOS0L7dVxdGoP4IeAd3d0MXHrFgYy4INslBKecTv3khxCrH2YGo/nYTHL8=
|
||||
=OlAq
|
||||
-----END PGP MESSAGE-----
|
21
dot_config/mutt/accounts/encrypted_1-personal.muttrc.asc
Normal file
21
dot_config/mutt/accounts/encrypted_1-personal.muttrc.asc
Normal file
|
@ -0,0 +1,21 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAg0t08EcfvRvVW4hLDq1IZkzALytZW8hjw86tVI0RZxgw
|
||||
T+37J65ib0rWFWS/x2McFR4itiW2xYEzDaa9Z1CAx71EeYxSq2ARMyxwGMKvq94e
|
||||
0ukBfuMQpRtrrvjvH1GOAdggkILBq2Rnql967yxkrf6iwlSJlNpbkMsXZdCWeGrD
|
||||
mM6bd3B9D8lsBOeePNXdu5ejh5YnA2/SHRkf+JKsioPo4gvTnAQ+adb1Xa/ADruS
|
||||
vbJz7V3Ji+LMgq5rdsUsT0ctR/85RqyFsXbLOYojB+Etud3//Yzovbc2TgZe6qA5
|
||||
1wEBKtWjBgTlGGCxnYR6ht0f7ymMkL4aARkIpM+DTnkWSmoDEq6oO8ib4NRh3Mnd
|
||||
kNDV+yEdViaj5fu8a7h1DWQsHa1xs+g0ppHOWfXPNbJq0RRTWROztGfhuPhXLC+x
|
||||
K8KOv+k0euMjxgXkxkKK8b5Hw7Dq9kHlyoqXxDz+FBT0neh3s8+UDoDlBOzG80JC
|
||||
ByPzBZ42cfWbbJ8JHABG1AeGmxDNYsMBUro9JjRR1cjZ++adezQQdnBZZcB3ATGy
|
||||
QE1wwTG41TGVLdo1MvqfHncjtG1YoubG//HLjvYq0gLCa46IkVagsEzsc/sNcV7f
|
||||
5nNOkvGwhjxVgo/0emBNS7IEdFKpszoxpQOI50wRfdkE2nB6XjHiNiJbMADPUHAW
|
||||
om2zlTRFrE9AFI+YFE053BfhJC9bbiuoXsPEF75RMQkbzjdh2jRw5d9o4Tr69N3y
|
||||
trP1TfZyEshNeKSU7H07p3zJ3rzMRAU4HVRtSzIKPN251cAJcn5Yg4aCegOHoJ1U
|
||||
naQRs7xiPihlViQTDjdyn397oSO1+YFfDtG2a1MJilUVmPLFNLtkQeWj2oC/L4m0
|
||||
i5KQ+x+7UPrSMa0FFtjWNLhh7tXHEYCDzhKRNUcgAwmrqG6uL/Zs3ktsiPhlX0cL
|
||||
Dzb8dsitfYtZ43rt5QUMAQeqrKOsfTjrXmn994H31sjRmFqqSTZUA1EibEGxacTp
|
||||
U+80nmQW2cPPGDZjXt2bp/OymqyfkNI3Llv2fJGRpRvge8eSrI9BE+BOgKXP
|
||||
=jaGP
|
||||
-----END PGP MESSAGE-----
|
23
dot_config/mutt/accounts/encrypted_2-work.muttrc.asc
Normal file
23
dot_config/mutt/accounts/encrypted_2-work.muttrc.asc
Normal file
|
@ -0,0 +1,23 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAeIEi26S8uxkG1vm2FyVx1XceCD2wIZe0PmAjvf/ZuQUw
|
||||
dbJC6pu2RDHuvmquGxOO5kRn5abN9MCm+8xcZ4ze49qVeoFJ9URP451Fx4iww6WE
|
||||
0ukBR4+JKeyppPZ71tMiGNqVsveE1O2iXHrFDaH1uY7X0zPgHoiKyzIqAQHJnC9p
|
||||
+wQaaJZ/5is9iJGtNbNAfSPt//lHlKtcS8ocziZhUJKCrQ4scI0VLQrvmgxr1D6E
|
||||
wEwl/eBmPgUtAIbs9MNaTZ5v/6WLDBJnb6NJx2S2vdrSd7BFjnR5qoCie9bLy03b
|
||||
DZAzlrf0qtuKFQrauaSfDumArpm59uVMT/McZbO9FU2+Q0yz7nEDRXqAOmCoq66N
|
||||
RsMdkOBoeEdVKFxQovriOvY4fxHxqAnD4h04icbj6l32VfGoDGUElUMlpsMLmE5T
|
||||
F6mirp2AWZWH59VTRKCbFNr1Y2XVFO9V3rPB9XRTeM4xJ5cIAvhfcHOfv6UEXV6Y
|
||||
ihlibwClnzGEGqNi3n84CDtLIzf6Gc8saVNsHOPNF2fXXgYdebU8Bt3V64uyhPRK
|
||||
1GkzzuH2QGH/2GU23dGNT1BVKzVUheB/nPmGFaqEA+nsDzvjzt0htQE6oht1EpIg
|
||||
aULIMk/rospSkZs2Px4xmUYb75o1GOS0xduaVRozEIvpf0FsTuzYv4NhhI6ni5bu
|
||||
KyRY9x/Ojaccx11v8XxKHBBtW7RQlcsGJVGPWz9R9HPbOgHgcykYVUixz8vgVmvl
|
||||
QLy04AIy17fYoxvggtcXiKY6Wm1oFeZkS/RFFcloWME2yMBYnbSW9Qm0CA/TxeXs
|
||||
1QzkI5b8VzT8iNO8fWxMBIGfKBeL4uKo3d4bhCCdhUGsPcnkFXqKD37CsYZ4ikfz
|
||||
u8A/jM8sbYcYG9uJ0YaKkn5B52g05GRaGsot/XsaatKfuVrReVI36fMO2jEmrbG3
|
||||
S05Sb/nwceMv99BX1oJPWgeF9LT6C/NmO4YCY45biDnkCD4B9b6WXfWLvao+yd/9
|
||||
Fxkl3Q+C6x5R3uI646RunZo9AQ1HRlNcO/KPec34s66fj236Vrnj3AO/jn64+B2w
|
||||
PCFvzp6Uvcwu23iEW8dC2/HkAXZSyDT7boYT1VNj6D2lE5KmTJB+XPcUfQfPqgpy
|
||||
LX3LPaKvZAnARNojVq64qQpqC9XKXCkT0t0Ipw==
|
||||
=Rvrb
|
||||
-----END PGP MESSAGE-----
|
32
dot_config/mutt/muttrc.tmpl
Normal file
32
dot_config/mutt/muttrc.tmpl
Normal file
|
@ -0,0 +1,32 @@
|
|||
# vim: filetype=neomuttrc
|
||||
{{ if eq .chezmoi.os "darwin" -}}
|
||||
source /usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
||||
{{ else }}
|
||||
source /usr/share/mutt-wizard/mutt-wizard.muttrc
|
||||
{{- end }}
|
||||
# use thread sorting
|
||||
set sort="threads"
|
||||
set sort_aux="reverse-last-date-received"
|
||||
|
||||
# compose with pandoc / Markdown
|
||||
macro compose m \
|
||||
"<enter-command>set pipe_decode<enter>\
|
||||
<pipe-message>docker run -i -v /tmp:/tmp --rm pandoc/core -f gfm -t plain -o /tmp/msg.txt<enter>\
|
||||
<pipe-message>docker run -i -v /tmp:/tmp -v ~/.config/mutt/templates/work.html:/mutt/templates/work.html --rm pandoc/core -s -f gfm --self-contained -o /tmp/msg.html --resource-path /mutt/templates/ --template work<enter>\
|
||||
<enter-command>unset pipe_decode<enter>\
|
||||
<attach-file>/tmp/msg.txt<enter>\
|
||||
<attach-file>/tmp/msg.html<enter>\
|
||||
<tag-entry><previous-entry><tag-entry><group-alternatives>" \
|
||||
"Convert markdown to HTML5 and plaintext alternative content types"
|
||||
|
||||
# khard / vdirsyncer as an autocompleting addressbook
|
||||
set query_command = "khard email --parsable %s"
|
||||
bind editor <Tab> complete-query
|
||||
bind editor ^T complete
|
||||
|
||||
# default account
|
||||
source ~/.config/mutt/accounts/1-personal.muttrc
|
||||
|
||||
# swap between accounts
|
||||
macro index,pager i1 '<sync-mailbox><enter-command>source ~/.config/mutt/accounts/1-personal.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to personal"
|
||||
macro index,pager i2 '<sync-mailbox><enter-command>source ~/.config/mutt/accounts/2-work.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to work"
|
25
dot_config/mutt/templates/email.html
Normal file
25
dot_config/mutt/templates/email.html
Normal file
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<style>
|
||||
$styles.html()$
|
||||
</style>
|
||||
$for(css)$
|
||||
<link rel="stylesheet" href="$css$" />
|
||||
$endfor$
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
$for(header-includes)$
|
||||
$header-includes$
|
||||
$endfor$
|
||||
</head>
|
||||
<body>
|
||||
$body$
|
||||
$for(include-after)$
|
||||
$include-after$
|
||||
$endfor$
|
||||
</body>
|
||||
</html>
|
34
dot_config/mutt/templates/encrypted_work.html.asc
Normal file
34
dot_config/mutt/templates/encrypted_work.html.asc
Normal file
|
@ -0,0 +1,34 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
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
|
||||
=8s1o
|
||||
-----END PGP MESSAGE-----
|
2
dot_config/newsboat/urls
Normal file
2
dot_config/newsboat/urls
Normal file
|
@ -0,0 +1,2 @@
|
|||
https://this-week-in-neovim.org/rss
|
||||
https://neomutt.org/feed.xml
|
109
dot_config/nvim/init.lua
Normal file
109
dot_config/nvim/init.lua
Normal file
|
@ -0,0 +1,109 @@
|
|||
-- vim:fdm=marker
|
||||
pcall(require, "impatient")
|
||||
|
||||
-- packer {{{
|
||||
local fn = vim.fn
|
||||
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
print("Cloning packer ..")
|
||||
|
||||
fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path })
|
||||
|
||||
-- install plugins + compile their configs
|
||||
vim.cmd("packadd packer.nvim")
|
||||
require("plugins")
|
||||
require("packer").sync()
|
||||
end
|
||||
|
||||
require("utils")
|
||||
require("lsp")
|
||||
|
||||
-- custom packer command
|
||||
local packer_cmd = function(callback)
|
||||
return function()
|
||||
require("plugins")
|
||||
require("packer")[callback]()
|
||||
end
|
||||
end
|
||||
|
||||
local function cmd(lhs, fun, opt)
|
||||
vim.api.nvim_create_user_command(lhs, fun, opt or {})
|
||||
end
|
||||
|
||||
cmd("PackerClean", packer_cmd("clean"))
|
||||
cmd("PackerCompile", packer_cmd("compile"))
|
||||
cmd("PackerInstall", packer_cmd("install"))
|
||||
cmd("PackerProfile", packer_cmd("profile"))
|
||||
cmd("PackerStatus", packer_cmd("status"))
|
||||
cmd("PackerSync", packer_cmd("sync"))
|
||||
cmd("PackerUpdate", packer_cmd("update"))
|
||||
-- }}}
|
||||
|
||||
-- prelude
|
||||
vim.opt.laststatus = 3
|
||||
vim.opt.list = true
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.scrolloff = 5
|
||||
vim.opt.showtabline = 2
|
||||
vim.opt.sidescrolloff = 15
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.splitright = true
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.shadafile = nil
|
||||
|
||||
-- basic boring stuff
|
||||
vim.g.mapleader = " "
|
||||
vim.opt.mouse = "nv"
|
||||
|
||||
-- redefine word boundaries - '_' is a word seperator, this helps with snake_case
|
||||
vim.cmd("set iskeyword-=_")
|
||||
|
||||
-- easier split navigation
|
||||
Nmap("<C-J>", "<C-W>j<CR>")
|
||||
Nmap("<C-K>", "<C-W>k<CR>")
|
||||
Nmap("<C-L>", "<C-W>l<CR>")
|
||||
Nmap("<C-H>", "<C-W>h<CR>")
|
||||
-- escape :terminal easier
|
||||
vim.cmd([[tnoremap <Esc> <C-\><C-n>]])
|
||||
|
||||
-- indentations settings
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.expandtab = true
|
||||
-- indentation autocmds for some filetypes
|
||||
vim.cmd([[
|
||||
" smol spaces for soydev
|
||||
autocmd FileType html,css,js,jsreact,ts,tsreact,json,yaml setlocal ts=2 sw=2 sts=0 et
|
||||
" Tabs, yikes
|
||||
autocmd FileType go,lua setlocal ts=4 sw=4 sts=4 noet
|
||||
" Spaces, based languages
|
||||
autocmd FileType python,rust setlocal ts=4 sw=4 sts=4 et
|
||||
]])
|
||||
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = "*.lua",
|
||||
callback = function()
|
||||
vim.defer_fn(function()
|
||||
if vim.fn.expand("%:p"):match(vim.fn.resolve(vim.fn.stdpath("config"))) then
|
||||
packer_cmd("compile")
|
||||
end
|
||||
end, 0)
|
||||
end,
|
||||
})
|
||||
|
||||
if vim.g.neovide then
|
||||
vim.cmd("cd $HOME")
|
||||
vim.g.neovide_cursor_vfx_mode = "ripple"
|
||||
vim.g.neovide_input_macos_alt_is_meta = true
|
||||
vim.o.guifont = "VictorMono Nerd Font:h18"
|
||||
-- allow copy & paste in neovide,
|
||||
-- https://github.com/neovide/neovide/issues/1263
|
||||
vim.cmd([[
|
||||
map <D-v> "+p<CR>
|
||||
map! <D-v> <C-R>+
|
||||
tmap <D-v> <C-R>+
|
||||
vmap <D-c> "+y<CR>
|
||||
]])
|
||||
end
|
38
dot_config/nvim/lua/config/barbar.lua
Normal file
38
dot_config/nvim/lua/config/barbar.lua
Normal file
|
@ -0,0 +1,38 @@
|
|||
require("bufferline").setup({
|
||||
closable = false,
|
||||
icons = "both",
|
||||
insert_at_end = true,
|
||||
no_name_title = "",
|
||||
})
|
||||
|
||||
-- hop between buffers in order of the bar
|
||||
Nmap("<A-,>", "<Cmd>BufferPrevious<CR>")
|
||||
Nmap("<A-.>", "<Cmd>BufferNext<CR>")
|
||||
-- Re-order to previous/next
|
||||
Nmap("<A-<>", "<Cmd>BufferMovePrevious<CR>")
|
||||
Nmap("<A->>", "<Cmd>BufferMoveNext<CR>")
|
||||
-- Goto buffer in position...
|
||||
Nmap("<A-1>", "<Cmd>BufferGoto 1<CR>")
|
||||
Nmap("<A-2>", "<Cmd>BufferGoto 2<CR>")
|
||||
Nmap("<A-3>", "<Cmd>BufferGoto 3<CR>")
|
||||
Nmap("<A-4>", "<Cmd>BufferGoto 4<CR>")
|
||||
Nmap("<A-5>", "<Cmd>BufferGoto 5<CR>")
|
||||
Nmap("<A-6>", "<Cmd>BufferGoto 6<CR>")
|
||||
Nmap("<A-7>", "<Cmd>BufferGoto 7<CR>")
|
||||
Nmap("<A-8>", "<Cmd>BufferGoto 8<CR>")
|
||||
Nmap("<A-9>", "<Cmd>BufferGoto 9<CR>")
|
||||
Nmap("<A-0>", "<Cmd>BufferLast<CR>")
|
||||
-- Pin/unpin buffer
|
||||
Nmap("<A-p>", "<Cmd>BufferPin<CR>")
|
||||
-- Close buffer
|
||||
Nmap("<A-x>", "<Cmd>BufferClose<CR>")
|
||||
Nmap("<A-X>", "<Cmd>BufferClose!<CR>")
|
||||
-- create new buffer
|
||||
Nmap("<A-c>", "<Cmd>enew<CR>")
|
||||
-- pick buffer
|
||||
Nmap("<A-space>", "<Cmd>BufferPick<CR>")
|
||||
-- Sort automatically by...
|
||||
Nmap("<Space>bb", "<Cmd>BufferOrderByBufferNumber<CR>")
|
||||
Nmap("<Space>bd", "<Cmd>BufferOrderByDirectory<CR>")
|
||||
Nmap("<Space>bl", "<Cmd>BufferOrderByLanguage<CR>")
|
||||
Nmap("<Space>bw", "<Cmd>BufferOrderByWindowNumber<CR>")
|
75
dot_config/nvim/lua/config/catppuccin.lua
Normal file
75
dot_config/nvim/lua/config/catppuccin.lua
Normal file
|
@ -0,0 +1,75 @@
|
|||
-- use transparency in terminal only
|
||||
local useTransparentBG = true
|
||||
if vim.g.neovide then
|
||||
useTransparentBG = false
|
||||
end
|
||||
|
||||
vim.g.catppuccin_flavour = "mocha"
|
||||
|
||||
require("catppuccin").setup({
|
||||
transparent_background = false,
|
||||
term_colors = true,
|
||||
dim_inactive = {
|
||||
enable = false,
|
||||
shade = "dark",
|
||||
percentage = 0.05,
|
||||
},
|
||||
styles = {
|
||||
comments = { "italic" },
|
||||
conditionals = { "italic" },
|
||||
},
|
||||
integrations = {
|
||||
treesitter = true,
|
||||
native_lsp = {
|
||||
enabled = true,
|
||||
virtual_text = {
|
||||
errors = { "italic" },
|
||||
hints = { "italic" },
|
||||
warnings = { "italic" },
|
||||
information = { "italic" },
|
||||
},
|
||||
underlines = {
|
||||
errors = { "underline" },
|
||||
hints = { "underline" },
|
||||
warnings = { "underline" },
|
||||
information = { "underline" },
|
||||
},
|
||||
},
|
||||
cmp = true,
|
||||
coc_nvim = false,
|
||||
lsp_saga = true,
|
||||
lsp_trouble = true,
|
||||
nvimtree = {
|
||||
enabled = false,
|
||||
},
|
||||
neotree = {
|
||||
enabled = true,
|
||||
show_root = false,
|
||||
transparent_panel = false,
|
||||
},
|
||||
which_key = true,
|
||||
indent_blankline = {
|
||||
enabled = true,
|
||||
colored_indent_levels = true,
|
||||
},
|
||||
barbar = false,
|
||||
bufferline = true,
|
||||
dashboard = true,
|
||||
fern = false,
|
||||
gitgutter = false,
|
||||
gitsigns = true,
|
||||
hop = false,
|
||||
leap = false,
|
||||
lightspeed = false,
|
||||
markdown = true,
|
||||
neogit = true,
|
||||
notify = true,
|
||||
symbols_outline = true,
|
||||
telekasten = false,
|
||||
telescope = true,
|
||||
ts_rainbow = true,
|
||||
vim_sneak = false,
|
||||
}
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme catppuccin")
|
66
dot_config/nvim/lua/config/dashboard.lua
Normal file
66
dot_config/nvim/lua/config/dashboard.lua
Normal file
|
@ -0,0 +1,66 @@
|
|||
local home = os.getenv("HOME")
|
||||
local db = require("dashboard")
|
||||
|
||||
db.custom_header = function()
|
||||
local quotes = {
|
||||
"Demonic presence at unsafe levels.",
|
||||
"Rip and tear, until it is done.",
|
||||
"So you walk eternally through the shadow realms.",
|
||||
"The only thing they fear... is you.",
|
||||
"There he lies still, and ever more, in silent suffering.",
|
||||
"We will send unto them...only you.",
|
||||
"What you see now in this facility is the cost. Of progress.",
|
||||
"You can't just shoot a hole in the surface of mars!",
|
||||
"WARNING: The Slayer has entered the facility.",
|
||||
"DANGER: THE SLAYER HAS CONTROL OF THE BFG.",
|
||||
}
|
||||
local random_quote = quotes[math.random(#quotes)]
|
||||
return {
|
||||
[[]],
|
||||
[[ _ _ _____ _ _ _____ _____ _____ _ _ _ _ ________ ___]],
|
||||
[[| | | |_ _| \ | |/ ___|_ _| _ | \ | | | | | |_ _| \/ |]],
|
||||
[[| | | | | | | \| |\ `--. | | | | | | \| | | | | | | | | . . |]],
|
||||
[[| |/\| | | | | . ` | `--. \ | | | | | | . ` | | | | | | | | |\/| |]],
|
||||
[[\ /\ /_| |_| |\ |/\__/ / | | \ \_/ / |\ | _ \ \_/ /_| |_| | | |]],
|
||||
[[ \/ \/ \___/\_| \_/\____/ \_/ \___/\_| \_/ (_) \___/ \___/\_| |_/]],
|
||||
[[]],
|
||||
random_quote,
|
||||
[[]],
|
||||
}
|
||||
end
|
||||
|
||||
db.custom_center = {
|
||||
{
|
||||
icon = " ",
|
||||
desc = "Restore latest session ",
|
||||
action = "SessionLoad",
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
desc = "Open Projects ",
|
||||
action = "Telescope project",
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
desc = "Find File ",
|
||||
action = "Telescope find_files find_command=rg,--hidden,--files",
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
desc = "File Browser ",
|
||||
action = "Telescope file_browser",
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
desc = "Find word ",
|
||||
action = "Telescope live_grep",
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
desc = "Open Settings ",
|
||||
action = function()
|
||||
vim.cmd("cd " .. home .. "/.config/nvim/")
|
||||
vim.cmd("edit init.lua")
|
||||
end
|
||||
},
|
||||
}
|
0
dot_config/nvim/lua/config/empty_init.lua
Normal file
0
dot_config/nvim/lua/config/empty_init.lua
Normal file
58
dot_config/nvim/lua/config/feline.lua
Normal file
58
dot_config/nvim/lua/config/feline.lua
Normal file
|
@ -0,0 +1,58 @@
|
|||
local clrs = require("catppuccin.palettes.init").get_palette()
|
||||
local ctp_feline = require("catppuccin.groups.integrations.feline")
|
||||
|
||||
ctp_feline.setup({
|
||||
assets = {
|
||||
left_separator = "",
|
||||
right_separator = "",
|
||||
bar = "█",
|
||||
mode_icon = " ",
|
||||
},
|
||||
sett = {
|
||||
show_modified = true,
|
||||
curr_dir = clrs.mauve,
|
||||
curr_file = clrs.blue,
|
||||
},
|
||||
})
|
||||
|
||||
require("feline").setup({
|
||||
components = ctp_feline.get(),
|
||||
force_inactive = {
|
||||
filetypes = {
|
||||
"^packer$",
|
||||
"^startify$",
|
||||
"^fugitive$",
|
||||
"^fugitiveblame$",
|
||||
"^qf$",
|
||||
"^help$",
|
||||
},
|
||||
buftypes = {
|
||||
"^terminal$",
|
||||
},
|
||||
bufnames = {},
|
||||
},
|
||||
})
|
||||
|
||||
-- local navic = require("nvim-navic")
|
||||
|
||||
-- local wbar = {
|
||||
-- active = {},
|
||||
-- inactive = {}
|
||||
-- }
|
||||
-- table.insert(wbar.active, {})
|
||||
-- table.insert(wbar.active, {})
|
||||
-- table.insert(wbar.active, {})
|
||||
|
||||
-- table.insert(wbar.active[1], {
|
||||
-- provider = function()
|
||||
-- return navic.get_location()
|
||||
-- end,
|
||||
-- enabled = function()
|
||||
-- return navic.is_available()
|
||||
-- end,
|
||||
-- })
|
||||
-- table.insert(wbar.active[3], {
|
||||
-- provider = 'lsp_client_names'
|
||||
-- })
|
||||
|
||||
-- require("feline").winbar.setup({ components = wbar })
|
63
dot_config/nvim/lua/config/gitsigns.lua
Normal file
63
dot_config/nvim/lua/config/gitsigns.lua
Normal file
|
@ -0,0 +1,63 @@
|
|||
require("gitsigns").setup({
|
||||
signs = {
|
||||
add = {
|
||||
hl = "GitSignsAdd",
|
||||
text = "+",
|
||||
numhl = "GitSignsAddNr",
|
||||
linehl = "GitSignsAddLn",
|
||||
},
|
||||
change = {
|
||||
hl = "GitSignsChange",
|
||||
text = "~",
|
||||
numhl = "GitSignsChangeNr",
|
||||
linehl = "GitSignsChangeLn",
|
||||
},
|
||||
delete = {
|
||||
hl = "GitSignsDelete",
|
||||
text = "_",
|
||||
numhl = "GitSignsDeleteNr",
|
||||
linehl = "GitSignsDeleteLn",
|
||||
},
|
||||
topdelete = {
|
||||
hl = "GitSignsDelete",
|
||||
text = "‾",
|
||||
numhl = "GitSignsDeleteNr",
|
||||
linehl = "GitSignsDeleteLn",
|
||||
},
|
||||
changedelete = {
|
||||
hl = "GitSignsChange",
|
||||
text = "x",
|
||||
numhl = "GitSignsChangeNr",
|
||||
linehl = "GitSignsChangeLn",
|
||||
},
|
||||
},
|
||||
linehl = false,
|
||||
numhl = false,
|
||||
signcolumn = true,
|
||||
word_diff = false,
|
||||
watch_gitdir = { interval = 1000, follow_files = true },
|
||||
attach_to_untracked = true,
|
||||
-- current line highlighting
|
||||
current_line_blame = true,
|
||||
current_line_blame_opts = {
|
||||
delay = 1000,
|
||||
ignore_whitespace = true,
|
||||
virt_text = true,
|
||||
virt_text_pos = "eol",
|
||||
},
|
||||
current_line_blame_formatter = "<author>, <author_time:%R> - <summary> | <abbrev_sha>",
|
||||
-- perf
|
||||
max_file_length = 40000,
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
-- use the included status formatter
|
||||
status_formatter = nil,
|
||||
preview_config = {
|
||||
border = "single",
|
||||
style = "minimal",
|
||||
relative = "cursor",
|
||||
row = 0,
|
||||
col = 1,
|
||||
},
|
||||
yadm = { enable = false },
|
||||
})
|
111
dot_config/nvim/lua/config/lspsaga.lua
Normal file
111
dot_config/nvim/lua/config/lspsaga.lua
Normal file
|
@ -0,0 +1,111 @@
|
|||
local saga = require("lspsaga")
|
||||
saga.init_lsp_saga({
|
||||
symbol_in_winbar = {
|
||||
in_custom = true,
|
||||
enable = true,
|
||||
separator = " > ",
|
||||
show_file = true,
|
||||
click_support = function(node, clicks, button, modifier)
|
||||
-- To see all avaiable defails: vim.pretty_print(node)
|
||||
local st = node.range.start
|
||||
local en = node.range["end"]
|
||||
if button == "l" then
|
||||
if modifier == "c" then
|
||||
print("lspsaga") -- ctrl left click to print "lspsaga"
|
||||
end -- jump to node's ending line+char
|
||||
if clicks == 2 then
|
||||
-- double left click to visual select
|
||||
vim.fn.cursor(st.line + 1, st.character + 1)
|
||||
vim.cmd.normal("v")
|
||||
vim.fn.cursor(en.line + 1, en.character + 1)
|
||||
else -- jump to node's starting line+char
|
||||
vim.fn.cursor(st.line + 1, st.character + 1)
|
||||
end
|
||||
elseif button == "r" then
|
||||
if modifier == "c" then
|
||||
print("lspsaga") -- shift right click to print "lspsaga"
|
||||
end -- jump to node's ending line+char
|
||||
vim.fn.cursor(en.line + 1, en.character + 1)
|
||||
elseif button == "m" then
|
||||
-- middle click to visual select node
|
||||
vim.fn.cursor(st.line + 1, st.character + 1)
|
||||
vim.cmd.normal("v")
|
||||
vim.fn.cursor(en.line + 1, en.character + 1)
|
||||
end
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
Nmap("gr", "<cmd>Lspsaga rename<cr>")
|
||||
Nmap("gx", "<cmd>Lspsaga code_action<cr>")
|
||||
Xmap("gx", ":<c-u>Lspsaga range_code_action<cr>")
|
||||
Nmap("K", "<cmd>Lspsaga hover_doc<cr>")
|
||||
Nmap("go", "<cmd>Lspsaga show_line_diagnostics<cr>")
|
||||
Nmap("gj", "<cmd>Lspsaga diagnostic_jump_next<cr>")
|
||||
Nmap("gk", "<cmd>Lspsaga diagnostic_jump_prev<cr>")
|
||||
Nmap("<C-u>", "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1, '<c-u>')<cr>", {})
|
||||
Nmap("<C-d>", "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(1, '<c-d>')<cr>", {})
|
||||
|
||||
-- nullchilly winbar
|
||||
local function get_file_name(include_path)
|
||||
local file_name = require("lspsaga.symbolwinbar").get_file_name()
|
||||
if vim.fn.bufname("%") == "" then
|
||||
return ""
|
||||
end
|
||||
if include_path == false then
|
||||
return file_name
|
||||
end
|
||||
-- Else if include path: ./lsp/saga.lua -> lsp > saga.lua
|
||||
local sep = vim.loop.os_uname().sysname == "Windows" and "\\" or "/"
|
||||
local path_list = vim.split(string.gsub(vim.fn.expand("%:~:.:h"), "%%", ""), sep)
|
||||
local file_path = ""
|
||||
for _, cur in ipairs(path_list) do
|
||||
file_path = (cur == "." or cur == "~") and "" or file_path .. cur .. " " .. "%#LspSagaWinbarSep#>%*" .. " %*"
|
||||
end
|
||||
return file_path .. file_name
|
||||
end
|
||||
|
||||
local function config_winbar()
|
||||
local exclude = {
|
||||
["teminal"] = true,
|
||||
["toggleterm"] = true,
|
||||
["prompt"] = true,
|
||||
["NvimTree"] = true,
|
||||
["help"] = true,
|
||||
} -- Ignore float windows and exclude filetype
|
||||
if vim.api.nvim_win_get_config(0).zindex or exclude[vim.bo.filetype] then
|
||||
vim.wo.winbar = ""
|
||||
else
|
||||
local ok, lspsaga = pcall(require, "lspsaga.symbolwinbar")
|
||||
local sym
|
||||
if ok then
|
||||
sym = lspsaga.get_symbol_node()
|
||||
end
|
||||
local win_val = ""
|
||||
win_val = get_file_name(true) -- set to true to include path
|
||||
if sym ~= nil then
|
||||
win_val = win_val .. sym
|
||||
end
|
||||
vim.wo.winbar = win_val
|
||||
end
|
||||
end
|
||||
|
||||
local events = { "BufEnter", "BufWinEnter", "CursorMoved" }
|
||||
vim.api.nvim_create_autocmd(events, {
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
config_winbar()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "LspsagaUpdateSymbol",
|
||||
callback = function()
|
||||
config_winbar()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.cmd([[
|
||||
nnoremap <silent> <A-d> <cmd>lua require('lspsaga.floaterm').open_float_terminal()<CR>
|
||||
tnoremap <silent> <A-d> <C-\><C-n>:lua require('lspsaga.floaterm').close_float_terminal()<CR>
|
||||
]])
|
106
dot_config/nvim/lua/config/presence.lua
Normal file
106
dot_config/nvim/lua/config/presence.lua
Normal file
|
@ -0,0 +1,106 @@
|
|||
function string.starts(self, str)
|
||||
return self:find('^' .. str) ~= nil
|
||||
end
|
||||
|
||||
local conceal = function()
|
||||
local home = os.getenv("HOME")
|
||||
local blacklist = {
|
||||
[home .. "/git/work"] = "Working...",
|
||||
[home .. "/git/freelance"] = "Freelancing...",
|
||||
[home .. "/git/freelance"] = "Freelancing...",
|
||||
}
|
||||
|
||||
local cur_file = vim.fn.expand("%:p")
|
||||
for k, v in pairs(blacklist) do
|
||||
if cur_file:starts(k) then
|
||||
return v
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
require("presence"):setup({
|
||||
-- General options
|
||||
auto_update = true,
|
||||
neovim_image_text = "The Soydev's Kryptonite",
|
||||
-- Main image display (either "neovim" or "file")
|
||||
main_image = "file",
|
||||
-- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
|
||||
---@diagnostic disable-next-line: unused-local
|
||||
buttons = function(buffer, repo_url)
|
||||
-- ignore where no repo_url is set
|
||||
if repo_url == nil then
|
||||
return false
|
||||
end
|
||||
|
||||
-- only show certain org/user repos, don't leak clients or work
|
||||
local visible_urls = {
|
||||
"github.com/catppuccin",
|
||||
"github.com/farbenfroh",
|
||||
"github.com/nekowinston",
|
||||
}
|
||||
|
||||
-- check if repo_url is in the list of visible urls
|
||||
for _, visible_url in ipairs(visible_urls) do
|
||||
if repo_url:find(visible_url) then
|
||||
return {
|
||||
{
|
||||
label = "Steal the code",
|
||||
url = repo_url,
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
-- if not, return false
|
||||
return false
|
||||
end,
|
||||
debounce_timeout = 10,
|
||||
file_assets = {
|
||||
["k8s.yaml"] = {
|
||||
"Kubernetes",
|
||||
"https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png",
|
||||
},
|
||||
["Chart.yaml"] = {
|
||||
"Helm Chart",
|
||||
"https://raw.githubusercontent.com/helm/community/main/art/images/Logo-Tweak-Dark.png",
|
||||
},
|
||||
["helmfile.yaml"] = {
|
||||
"helmfile",
|
||||
"https://raw.githubusercontent.com/helm/community/main/art/images/Logo-Tweak-Dark.png",
|
||||
}
|
||||
},
|
||||
-- Rich Presence text options
|
||||
editing_text = function(s)
|
||||
local concealed = conceal()
|
||||
if concealed then
|
||||
return concealed
|
||||
end
|
||||
return "✍️ " .. s
|
||||
end,
|
||||
reading_text = function(s)
|
||||
local concealed = conceal()
|
||||
if concealed then
|
||||
return concealed
|
||||
end
|
||||
return "📖 " .. s
|
||||
end,
|
||||
file_explorer_text = function(s)
|
||||
local concealed = conceal()
|
||||
if concealed then
|
||||
return concealed
|
||||
end
|
||||
return "📁 " .. s
|
||||
end,
|
||||
workspace_text = function(s)
|
||||
local concealed = conceal()
|
||||
if s ~= nil and not concealed then
|
||||
return "🗂️ ".. s
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end,
|
||||
git_commit_text = "Committing changes",
|
||||
plugin_manager_text = "🤹 Plugins",
|
||||
line_number_text = "L%s of %s",
|
||||
})
|
65
dot_config/nvim/lua/config/treesitter.lua
Normal file
65
dot_config/nvim/lua/config/treesitter.lua
Normal file
|
@ -0,0 +1,65 @@
|
|||
require("nvim-treesitter.configs").setup({
|
||||
auto_install = true,
|
||||
ignore_install = {
|
||||
-- woulnd't install sometimes, not needed
|
||||
"phpdoc",
|
||||
},
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"c",
|
||||
"cmake",
|
||||
"comment",
|
||||
"cpp",
|
||||
"css",
|
||||
"dockerfile",
|
||||
"fish",
|
||||
"gdscript",
|
||||
"glsl",
|
||||
"go",
|
||||
"godot_resource",
|
||||
"gomod",
|
||||
"gowork",
|
||||
"graphql",
|
||||
"help",
|
||||
"hjson",
|
||||
"html",
|
||||
"http",
|
||||
"java",
|
||||
"javascript",
|
||||
"jsdoc",
|
||||
"json",
|
||||
"json5",
|
||||
"jsonc",
|
||||
"kotlin",
|
||||
"latex",
|
||||
"lua",
|
||||
"make",
|
||||
"markdown",
|
||||
"ninja",
|
||||
"perl",
|
||||
"php",
|
||||
"prisma",
|
||||
"proto",
|
||||
"pug",
|
||||
"python",
|
||||
"rasi",
|
||||
"regex",
|
||||
"ruby",
|
||||
"rust",
|
||||
"scss",
|
||||
"sql",
|
||||
"svelte",
|
||||
"swift",
|
||||
"teal",
|
||||
"todotxt",
|
||||
"toml",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"vue",
|
||||
"yaml",
|
||||
},
|
||||
})
|
236
dot_config/nvim/lua/lsp.lua
Normal file
236
dot_config/nvim/lua/lsp.lua
Normal file
|
@ -0,0 +1,236 @@
|
|||
require("mason").setup({
|
||||
ui = {
|
||||
border = "none",
|
||||
icons = {
|
||||
package_installed = " ",
|
||||
package_pending = " ",
|
||||
package_uninstalled = " ",
|
||||
},
|
||||
},
|
||||
})
|
||||
require("mason-lspconfig").setup({ automatic_installation = true })
|
||||
|
||||
vim.opt.completeopt = "menu,menuone,noselect"
|
||||
|
||||
-- debug mode enabled
|
||||
vim.lsp.set_log_level("debug")
|
||||
|
||||
-- Setup nvim-cmp.
|
||||
local cmp = require("cmp")
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<Tab>"] = cmp.mapping.confirm({ select = true }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "vsnip" },
|
||||
}, { { name = "buffer" } }),
|
||||
})
|
||||
|
||||
-- Set configuration for specific filetype.
|
||||
cmp.setup.filetype("gitcommit", {
|
||||
sources = cmp.config.sources({
|
||||
{ name = "cmp_git" },
|
||||
}, { { name = "buffer" } }),
|
||||
})
|
||||
-- search
|
||||
cmp.setup.cmdline("/", {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = { { name = "buffer" } },
|
||||
})
|
||||
-- Use cmdline & path source for ':'
|
||||
cmp.setup.cmdline(":", {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources(
|
||||
{ {
|
||||
name = "path",
|
||||
option = { trailing_slash = true },
|
||||
} },
|
||||
{ { name = "cmdline" } }
|
||||
),
|
||||
})
|
||||
|
||||
-- Setup lspconfig.
|
||||
local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
|
||||
-- Mappings.
|
||||
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, opts)
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, opts)
|
||||
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
---@diagnostic disable-next-line: unused-local
|
||||
local on_attach = function(client, bufnr)
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||
|
||||
-- disable yaml diagnostics on Helm files
|
||||
if vim.bo[bufnr].buftype ~= "" or vim.bo[bufnr].filetype == "helm" then
|
||||
vim.diagnostic.disable()
|
||||
end
|
||||
|
||||
-- Mappings.
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
local bufopts = { noremap = true, silent = true, buffer = bufnr }
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts)
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts)
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, bufopts)
|
||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, bufopts)
|
||||
vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, bufopts)
|
||||
vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, bufopts)
|
||||
vim.keymap.set("n", "<space>wl", function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, bufopts)
|
||||
vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, bufopts)
|
||||
vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, bufopts)
|
||||
vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, bufopts)
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, bufopts)
|
||||
vim.keymap.set("n", "<space>nf", function()
|
||||
vim.lsp.buf.format({
|
||||
-- filter to only use null-ls
|
||||
filter = function(c)
|
||||
return c.name == "null-ls"
|
||||
end,
|
||||
bufnr = bufnr,
|
||||
})
|
||||
end, bufopts)
|
||||
end
|
||||
|
||||
local common_config = {
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
local lsp = require("lspconfig")
|
||||
-- joke language
|
||||
lsp.sumneko_lua.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
workspace = {
|
||||
-- Make the server aware of Neovim runtime files
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
checkThirdParty = false,
|
||||
maxPreload = 100000,
|
||||
preloadFileSize = 10000,
|
||||
},
|
||||
diagnostics = {
|
||||
-- Get the language server to recognize the `vim` global
|
||||
globals = { "vim" },
|
||||
},
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--- the cool kids
|
||||
lsp.bashls.setup(common_config)
|
||||
lsp.gopls.setup(common_config)
|
||||
lsp.pyright.setup(common_config)
|
||||
lsp.rust_analyzer.setup(common_config)
|
||||
|
||||
--- Web Development
|
||||
lsp.cssls.setup(common_config)
|
||||
local emmet_cap = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
emmet_cap.textDocument.completion.completionItem.snippetSupport = true
|
||||
lsp.emmet_ls.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = emmet_cap,
|
||||
filetypes = {
|
||||
"javascriptreact",
|
||||
"typescriptreact",
|
||||
"html",
|
||||
"svelte",
|
||||
"css",
|
||||
"less",
|
||||
"sass",
|
||||
"scss",
|
||||
},
|
||||
})
|
||||
-- lsp.html.setup(common_config)
|
||||
lsp.tailwindcss.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
emmetCompletions = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- soydev
|
||||
lsp.prismals.setup(common_config)
|
||||
lsp.svelte.setup(common_config)
|
||||
-- attach tsserver only when there's a 'package.json' file in the CWD
|
||||
lsp.tsserver.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
root_dir = lsp.util.root_pattern("package.json"),
|
||||
})
|
||||
-- attach deno only when there's a 'deps.ts' file in the CWD
|
||||
lsp.denols.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
root_dir = lsp.util.root_pattern("deps.ts"),
|
||||
single_file_support = false,
|
||||
})
|
||||
|
||||
-- data formats
|
||||
lsp.dockerls.setup(common_config)
|
||||
lsp.graphql.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
root_dir = lsp.util.root_pattern(".graphqlrc*", ".graphql.config.*", "graphql.config.*"),
|
||||
settings = {
|
||||
graphql = {
|
||||
schemaPath = "schema.graphql",
|
||||
},
|
||||
},
|
||||
})
|
||||
lsp.jsonls.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
json = {
|
||||
schemas = require("schemastore").json.schemas(),
|
||||
validate = { enable = true },
|
||||
},
|
||||
},
|
||||
})
|
||||
lsp.yamlls.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
redhat = {
|
||||
telemetry = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
yaml = {
|
||||
schemas = {
|
||||
["https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.24.2-standalone-strict/all.json"] = {
|
||||
"*.k8s.yaml",
|
||||
"*.k8s.yml",
|
||||
"kubectl-edit-*.yaml",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--- Documentation
|
||||
lsp.ltex.setup(common_config)
|
||||
-- lsp.marksman.setup(common_config)
|
||||
-- lsp.prosemd_lsp.setup(common_config)
|
471
dot_config/nvim/lua/plugins.lua
Normal file
471
dot_config/nvim/lua/plugins.lua
Normal file
|
@ -0,0 +1,471 @@
|
|||
require("utils")
|
||||
|
||||
vim.cmd([[packadd packer.nvim]])
|
||||
local packer = require("packer")
|
||||
-- slow internet...
|
||||
packer.init({
|
||||
git = { clone_timeout = 180 },
|
||||
profile = {
|
||||
enable = true,
|
||||
},
|
||||
})
|
||||
|
||||
return packer.startup(function(use)
|
||||
-- Packer managing itself
|
||||
use("wbthomason/packer.nvim")
|
||||
-- startup time or some shit
|
||||
use("lewis6991/impatient.nvim")
|
||||
|
||||
-- colour scheme
|
||||
use({
|
||||
"catppuccin/nvim",
|
||||
as = "catppuccin",
|
||||
branch = "dev",
|
||||
config = function()
|
||||
require("config/catppuccin")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"Pocco81/true-zen.nvim",
|
||||
branch = "main",
|
||||
config = function()
|
||||
require("true-zen").setup({
|
||||
modes = {
|
||||
ataraxis = {
|
||||
shade = "dark",
|
||||
backdrop = 0.00,
|
||||
quit_untoggles = true,
|
||||
padding = {
|
||||
left = 52,
|
||||
right = 52,
|
||||
top = 0,
|
||||
bottom = 0,
|
||||
},
|
||||
},
|
||||
narrow = {
|
||||
run_ataraxis = true,
|
||||
},
|
||||
},
|
||||
integrations = {
|
||||
tmux = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
-- git gutter
|
||||
use({
|
||||
"lewis6991/gitsigns.nvim",
|
||||
config = function()
|
||||
require("config/gitsigns")
|
||||
end,
|
||||
})
|
||||
|
||||
-- rainbow indents
|
||||
use({
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
config = function()
|
||||
require("indent_blankline").setup({
|
||||
space_char_blankline = " ",
|
||||
show_current_conext = true,
|
||||
char_highlight_list = {
|
||||
"IndentBlanklineIndent1",
|
||||
"IndentBlanklineIndent2",
|
||||
"IndentBlanklineIndent3",
|
||||
"IndentBlanklineIndent4",
|
||||
"IndentBlanklineIndent5",
|
||||
"IndentBlanklineIndent6",
|
||||
},
|
||||
})
|
||||
vim.g.indent_blankline_filetype_exclude = {
|
||||
"dashboard",
|
||||
"help",
|
||||
"neogitstatus",
|
||||
"fugitive",
|
||||
"packer",
|
||||
"NvimTree",
|
||||
"Trouble",
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
-- top bar
|
||||
use({
|
||||
"akinsho/bufferline.nvim",
|
||||
config = function()
|
||||
require("bufferline").setup({
|
||||
options = {
|
||||
show_close_icon = false,
|
||||
separator_style = "slant",
|
||||
close_icon = "",
|
||||
offsets = { { filetype = "NvimTree" } },
|
||||
left_mouse_command = "buffer %d",
|
||||
middle_mouse_command = "bdelete! %d",
|
||||
right_mouse_command = nil,
|
||||
},
|
||||
})
|
||||
-- hop between buffers in order of the bar
|
||||
Nmap("<A-,>", "<Cmd>BufferLineCyclePrev<CR>")
|
||||
Nmap("<A-.>", "<Cmd>BufferLineCycleNext<CR>")
|
||||
-- Re-order to previous/next
|
||||
Nmap("<A-<>", "<Cmd>BufferLineMovePrev<CR>")
|
||||
Nmap("<A->>", "<Cmd>BufferLineMoveNext<CR>")
|
||||
-- Goto buffer in position...
|
||||
Nmap("<A-1>", "<Cmd>BufferLineGoToBuffer 1<CR>")
|
||||
Nmap("<A-2>", "<Cmd>BufferLineGoToBuffer 2<CR>")
|
||||
Nmap("<A-3>", "<Cmd>BufferLineGoToBuffer 3<CR>")
|
||||
Nmap("<A-4>", "<Cmd>BufferLineGoToBuffer 4<CR>")
|
||||
Nmap("<A-5>", "<Cmd>BufferLineGoToBuffer 5<CR>")
|
||||
Nmap("<A-6>", "<Cmd>BufferLineGoToBuffer 6<CR>")
|
||||
Nmap("<A-7>", "<Cmd>BufferLineGoToBuffer 7<CR>")
|
||||
Nmap("<A-8>", "<Cmd>BufferLineGoToBuffer 8<CR>")
|
||||
Nmap("<A-9>", "<Cmd>BufferLineGoToBuffer 9<CR>")
|
||||
Nmap("<A-0>", "<Cmd>BufferLineGoToBuffer -1<CR>")
|
||||
-- Pin/unpin buffer
|
||||
Nmap("<A-p>", "<Cmd>BufferLineTogglePin<CR>")
|
||||
-- Close buffer
|
||||
Nmap("<A-x>", "<Cmd>bdelete<CR>")
|
||||
Nmap("<A-X>", "<Cmd>bdelete!<CR>")
|
||||
-- create new buffer
|
||||
Nmap("<A-c>", "<Cmd>enew<CR>")
|
||||
-- pick buffer
|
||||
Nmap("<A-space>", "<Cmd>BufferLinePick<CR>")
|
||||
-- Sort automatically by...
|
||||
Nmap("<Space>bd", "<Cmd>BufferLineSortByDirectory<CR>")
|
||||
Nmap("<Space>bl", "<Cmd>BufferLineSortByExtension<CR>")
|
||||
end,
|
||||
})
|
||||
|
||||
-- bottom bar
|
||||
use({
|
||||
"feline-nvim/feline.nvim",
|
||||
requires = "kyazdani42/nvim-web-devicons",
|
||||
after = { "catppuccin" },
|
||||
config = function()
|
||||
require("config/feline")
|
||||
end,
|
||||
})
|
||||
|
||||
-- DJI Osmo
|
||||
use({
|
||||
"luukvbaal/stabilize.nvim",
|
||||
config = function()
|
||||
require("stabilize").setup()
|
||||
end,
|
||||
})
|
||||
|
||||
-- syntax
|
||||
use({
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
run = ":TSUpdate",
|
||||
config = function()
|
||||
require("config/treesitter")
|
||||
end,
|
||||
})
|
||||
use({ "p00f/nvim-ts-rainbow", requires = "nvim-treesitter/nvim-treesitter" })
|
||||
|
||||
-- show possible key combos
|
||||
use({
|
||||
"folke/which-key.nvim",
|
||||
config = function()
|
||||
require("which-key").setup({})
|
||||
end,
|
||||
})
|
||||
-- we IDE now
|
||||
use({
|
||||
"rcarriga/nvim-notify",
|
||||
config = function()
|
||||
require("notify").setup({
|
||||
fps = 60,
|
||||
timeout = 2500,
|
||||
stages = "fade",
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
-- syntax
|
||||
use("alker0/chezmoi.vim")
|
||||
use("digitaltoad/vim-pug")
|
||||
use("ron-rs/ron.vim")
|
||||
use("elkowar/yuck.vim")
|
||||
|
||||
-- tooling
|
||||
use({
|
||||
"editorconfig/editorconfig-vim",
|
||||
config = function()
|
||||
-- add fugitive buffers to the editorconfig excludes
|
||||
vim.g.EditorConfig_exclude_patterns = { "fugitive://.*", "scp://.*" }
|
||||
end,
|
||||
})
|
||||
-- read and write encrypted pgp files
|
||||
use("jamessan/vim-gnupg")
|
||||
|
||||
-- additional functionality
|
||||
use("tpope/vim-commentary")
|
||||
use("tpope/vim-surround")
|
||||
use("ggandor/lightspeed.nvim")
|
||||
-- make those above work in repeat commands
|
||||
use("tpope/vim-repeat")
|
||||
|
||||
use({
|
||||
"windwp/nvim-autopairs",
|
||||
config = function()
|
||||
require("nvim-autopairs").setup({})
|
||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||
local cmp = require("cmp")
|
||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"windwp/nvim-ts-autotag",
|
||||
config = function()
|
||||
require("nvim-ts-autotag").setup()
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"heavenshell/vim-jsdoc",
|
||||
run = "make install",
|
||||
config = function()
|
||||
Nmap("<leader>jd", "<Cmd>JsDoc<CR>")
|
||||
end,
|
||||
})
|
||||
|
||||
-- git
|
||||
use("tpope/vim-fugitive")
|
||||
-- why not both?
|
||||
use({
|
||||
"TimUntersberger/neogit",
|
||||
requires = "nvim-lua/plenary.nvim",
|
||||
config = function()
|
||||
Nmap("<leader>ng", "<Cmd>Neogit<CR>")
|
||||
end,
|
||||
})
|
||||
use("christoomey/vim-sort-motion")
|
||||
use("dhruvasagar/vim-table-mode")
|
||||
use({
|
||||
"kyazdani42/nvim-tree.lua",
|
||||
config = function()
|
||||
require("nvim-tree").setup({ update_cwd = true })
|
||||
Nmap("<C-n>", ":NvimTreeToggle<CR>")
|
||||
Nmap("<leader>r", ":NvimTreeRefresh<CR>")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"RRethy/vim-hexokinase",
|
||||
run = "make",
|
||||
config = function()
|
||||
vim.g.Hexokinase_highlighters = { "virtual" }
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"simrat39/symbols-outline.nvim",
|
||||
config = function()
|
||||
Nmap("<leader>so", ":SymbolsOutline<CR>")
|
||||
end,
|
||||
})
|
||||
|
||||
-- databases
|
||||
use({
|
||||
"kristijanhusak/vim-dadbod-ui",
|
||||
requires = "tpope/vim-dadbod",
|
||||
config = function()
|
||||
Nmap("<leader>db", ":DBUIToggle<CR>")
|
||||
vim.g.db_ui_use_nerd_fonts = true
|
||||
vim.g.db_ui_win_position = "right"
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"kristijanhusak/vim-dadbod-completion",
|
||||
requires = { { "tpope/vim-dadbod" }, { "hrsh7th/nvim-cmp" } },
|
||||
config = function()
|
||||
require("cmp").setup.buffer({ sources = { { name = "vim-dadbod-completion" } } })
|
||||
end,
|
||||
})
|
||||
|
||||
-- telescope
|
||||
use({
|
||||
"nvim-telescope/telescope.nvim",
|
||||
requires = "nvim-lua/plenary.nvim",
|
||||
config = function()
|
||||
-- Find files using Telescope command-line sugar.
|
||||
Nmap("<leader>fc", "<cmd>Telescope conventional_commits<CR>")
|
||||
Nmap("<leader>fr", "<cmd>Telescope asynctasks all<CR>")
|
||||
Nmap("<leader>ff", "<cmd>Telescope find_files<CR>")
|
||||
Nmap("<leader>fg", "<cmd>Telescope live_grep<CR>")
|
||||
Nmap("<leader>fb", "<cmd>Telescope buffers<CR>")
|
||||
Nmap("<leader>fh", "<cmd>Telescope help_tags<CR>")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
run = "make",
|
||||
requires = "nvim-telescope/telescope.nvim",
|
||||
config = function()
|
||||
local telescope = require("telescope")
|
||||
telescope.setup({
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true,
|
||||
override_generic_sorter = true,
|
||||
override_file_sorter = true,
|
||||
case_mode = "smart_case",
|
||||
},
|
||||
},
|
||||
})
|
||||
telescope.load_extension("fzf")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"nvim-telescope/telescope-file-browser.nvim",
|
||||
config = function()
|
||||
require("telescope").load_extension("file_browser")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"nvim-telescope/telescope-project.nvim",
|
||||
config = function()
|
||||
require("telescope").load_extension("project")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"olacin/telescope-cc.nvim",
|
||||
requires = {
|
||||
{ "nvim-telescope/telescope.nvim" },
|
||||
{ "nvim-lua/popup.nvim" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("conventional_commits")
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"sudormrfbin/cheatsheet.nvim",
|
||||
})
|
||||
|
||||
use({
|
||||
"andweeb/presence.nvim",
|
||||
config = function()
|
||||
require("config/presence")
|
||||
end,
|
||||
})
|
||||
use({ "iamcco/markdown-preview.nvim", run = "cd app && yarn install" })
|
||||
|
||||
-- external extensions
|
||||
use("williamboman/mason.nvim")
|
||||
-- LSP
|
||||
use("williamboman/mason-lspconfig.nvim")
|
||||
use("neovim/nvim-lspconfig")
|
||||
-- completion
|
||||
use("hrsh7th/nvim-cmp")
|
||||
use("hrsh7th/cmp-buffer")
|
||||
use("hrsh7th/cmp-cmdline")
|
||||
use("hrsh7th/cmp-nvim-lsp")
|
||||
use("hrsh7th/cmp-path")
|
||||
use("hrsh7th/cmp-vsnip")
|
||||
use("hrsh7th/vim-vsnip")
|
||||
use("petertriho/cmp-git")
|
||||
-- other
|
||||
use({
|
||||
"jose-elias-alvarez/null-ls.nvim",
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.formatting.gofmt,
|
||||
null_ls.builtins.formatting.prettier,
|
||||
null_ls.builtins.formatting.rustfmt,
|
||||
null_ls.builtins.formatting.stylua,
|
||||
},
|
||||
})
|
||||
end,
|
||||
requires = { "nvim-lua/plenary.nvim" },
|
||||
})
|
||||
|
||||
use({
|
||||
"simrat39/rust-tools.nvim",
|
||||
config = function()
|
||||
require("rust-tools").setup({})
|
||||
end,
|
||||
})
|
||||
use("b0o/schemastore.nvim")
|
||||
--
|
||||
use({
|
||||
"folke/trouble.nvim",
|
||||
config = function()
|
||||
require("trouble").setup({})
|
||||
end,
|
||||
})
|
||||
use({
|
||||
"glepnir/lspsaga.nvim",
|
||||
config = function()
|
||||
require("config/lspsaga")
|
||||
end,
|
||||
})
|
||||
--
|
||||
use({
|
||||
"github/copilot.vim",
|
||||
config = function()
|
||||
Imap("<C-J>", "copilot#Accept(<Tab>)", { noremap = true, silent = true, expr = true })
|
||||
vim.g.copilot_no_tab_map = true
|
||||
end,
|
||||
})
|
||||
|
||||
-- organization
|
||||
use({
|
||||
"vimwiki/vimwiki",
|
||||
branch = "dev",
|
||||
config = function()
|
||||
vim.g.vimwiki_global_ext = 0
|
||||
vim.g.vimwiki_list = {
|
||||
{
|
||||
auto_export = 1,
|
||||
path_html = "~/.local/share/vimwiki/",
|
||||
path = "~/.local/share/vimwiki/",
|
||||
syntax = "markdown",
|
||||
ext = ".md",
|
||||
},
|
||||
}
|
||||
end,
|
||||
})
|
||||
use("tools-life/taskwiki")
|
||||
use({
|
||||
"skywind3000/asyncrun.vim",
|
||||
config = function()
|
||||
vim.g.asyncrun_open = 6
|
||||
end,
|
||||
})
|
||||
use({ "skywind3000/asynctasks.vim" })
|
||||
use({
|
||||
"GustavoKatel/telescope-asynctasks.nvim",
|
||||
config = function()
|
||||
require("telescope").load_extension("asynctasks")
|
||||
end,
|
||||
})
|
||||
|
||||
-- startup
|
||||
use({
|
||||
"glepnir/dashboard-nvim",
|
||||
config = function()
|
||||
require("config/dashboard")
|
||||
end,
|
||||
})
|
||||
|
||||
-- automatic theme switching
|
||||
use({
|
||||
"f-person/auto-dark-mode.nvim",
|
||||
config = function()
|
||||
local auto_dark_mode = require("auto-dark-mode")
|
||||
auto_dark_mode.setup({
|
||||
---@diagnostic disable-next-line: assign-type-mismatch
|
||||
update_interval = 5000,
|
||||
set_dark_mode = function()
|
||||
vim.cmd("Catppuccin mocha")
|
||||
end,
|
||||
set_light_mode = function()
|
||||
vim.cmd("Catppuccin latte")
|
||||
end,
|
||||
})
|
||||
auto_dark_mode.init()
|
||||
end,
|
||||
cond = vim.fn.has("macunix"),
|
||||
})
|
||||
end)
|
18
dot_config/nvim/lua/utils.lua
Normal file
18
dot_config/nvim/lua/utils.lua
Normal file
|
@ -0,0 +1,18 @@
|
|||
local function map(mode, shortcut, command, opt)
|
||||
vim.keymap.set(mode, shortcut, command, opt)
|
||||
end
|
||||
|
||||
function Nmap(shortcut, command, opt)
|
||||
opt = opt or { noremap = true, silent = true }
|
||||
map("n", shortcut, command, opt)
|
||||
end
|
||||
|
||||
function Imap(shortcut, command, opt)
|
||||
opt = opt or { noremap = true, silent = true }
|
||||
map("i", shortcut, command, opt)
|
||||
end
|
||||
|
||||
function Xmap(shortcut, command, opt)
|
||||
opt = opt or { noremap = true, silent = true }
|
||||
map("x", shortcut, command, opt)
|
||||
end
|
|
@ -0,0 +1,10 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAJKDgbUchDhAHfojOyIOHRBU+WIJXHstaCPOrPWxvfW4w
|
||||
RJt2LYBB2EynZ2URPGKb7JuIOnaQVHrUpdqLqTewv6PgrCIhSvj8bmxM0uJCRp0k
|
||||
0rsBLe30wj1au6VG3nlz2j4Wip8Sz9JrzfDdFR/4V6+hGFXH9Wy4qkdPWj6vZm3+
|
||||
TFG9LlUMV6NxmzyrI3Lf7oVQ589KX4mn617xkErGDjgITdGN7rfpd24ML94uQYbA
|
||||
cF0PYFH2bxHh+AtAMYq6Tg+Af7nhQm7CZMTrcYhnl99/O+WXgq3RGEK1bqGe63XL
|
||||
/Y721oRPf4egZvahAGzchjqHXJXlxvK1vJC3YasqF2722BTKiqVwZSr5+sIZ
|
||||
=sh0b
|
||||
-----END PGP MESSAGE-----
|
417
dot_config/picom.conf
Normal file
417
dot_config/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 = 8
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
shadow-opacity = .5
|
||||
|
||||
# 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 = false;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
#inactive-opacity = 0.8;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
#frame-opacity = 1.0;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should never be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [];
|
||||
|
||||
# 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 = 20;
|
||||
|
||||
# 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-method = "dual_kawase"
|
||||
blur-strength = 2
|
||||
|
||||
# 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 = true
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ""
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
# "window_type = 'dock'",
|
||||
# "window_type = 'desktop'",
|
||||
# "_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Enable remote control via D-Bus. See the man page for more details.
|
||||
# dbus = true
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
backend = "glx"
|
||||
# backend = "xrender";
|
||||
|
||||
# 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 = false
|
||||
|
||||
# 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.8; }
|
||||
dropdown_menu = { opacity = 0.8; }
|
||||
};
|
28
dot_config/polybar/colors/latte.ini
Normal file
28
dot_config/polybar/colors/latte.ini
Normal file
|
@ -0,0 +1,28 @@
|
|||
[colors]
|
||||
rosewater = #dc8a78
|
||||
flamingo = #dd7878
|
||||
pink = #ea76cb
|
||||
mauve = #8839ef
|
||||
red = #d20f39
|
||||
maroon = #e64553
|
||||
peach = #fe640b
|
||||
yellow = #df8e1d
|
||||
green = #40a02b
|
||||
teal = #179299
|
||||
sky = #04a5e5
|
||||
sapphire = #209fb5
|
||||
blue = #1e66f5
|
||||
lavender = #7287fd
|
||||
text = #4c4f69
|
||||
subtext1 = #5c5f77
|
||||
subtext0 = #6c6f85
|
||||
overlay2 = #7c7f93
|
||||
overlay1 = #8c8fa1
|
||||
overlay0 = #9ca0b0
|
||||
surface2 = #acb0be
|
||||
surface1 = #bcc0cc
|
||||
surface0 = #ccd0da
|
||||
base = #eff1f5
|
||||
mantle = #e6e9ef
|
||||
crust = #dce0e8
|
||||
crust_bg = #f2dce0e8
|
28
dot_config/polybar/colors/mocha.ini
Normal file
28
dot_config/polybar/colors/mocha.ini
Normal file
|
@ -0,0 +1,28 @@
|
|||
[colors]
|
||||
rosewater = #f5e0dc
|
||||
flamingo = #f2cdcd
|
||||
pink = #f5c2e7
|
||||
mauve = #cba6f7
|
||||
red = #f38ba8
|
||||
maroon = #eba0ac
|
||||
peach = #fab387
|
||||
yellow = #f9e2af
|
||||
green = #a6e3a1
|
||||
teal = #94e2d5
|
||||
sky = #89dceb
|
||||
sapphire = #74c7ec
|
||||
blue = #89b4fa
|
||||
lavender = #b4befe
|
||||
text = #cdd6f4
|
||||
subtext0 = #bac2de
|
||||
subtext1 = #a6adc8
|
||||
overlay0 = #9399b2
|
||||
overlay1 = #7f849c
|
||||
overlay2 = #6c7086
|
||||
surface0 = #585b70
|
||||
surface1 = #45475a
|
||||
surface2 = #313244
|
||||
base = #1e1e2e
|
||||
mantle = #181825
|
||||
crust = #11111b
|
||||
crust_bg = #f211111b
|
162
dot_config/polybar/config.ini
Normal file
162
dot_config/polybar/config.ini
Normal file
|
@ -0,0 +1,162 @@
|
|||
;# vim:ft=dosini
|
||||
|
||||
include-file = colors/mocha.ini
|
||||
|
||||
[global/wm]
|
||||
margin-top = 0
|
||||
margin-bottom = 0
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
|
||||
[bar/main]
|
||||
monitor = ${env:MONITOR:HDMI-0}
|
||||
|
||||
height = 24pt
|
||||
width = 100%
|
||||
fixed-center = true
|
||||
|
||||
background = ${colors.crust_bg}
|
||||
foreground = ${colors.text}
|
||||
|
||||
line-size = 1pt
|
||||
|
||||
module-margin-left = 4pt
|
||||
module-margin-right = 4pt
|
||||
|
||||
font-0 = "Inter:style=Medium:size=14;4"
|
||||
font-1 = "Victor Mono:style=SemiBold Italic:size=14;3"
|
||||
; font for nerdfont icons
|
||||
font-2 = "Symbols Nerd Font:style=1000-em:size=14;4"
|
||||
|
||||
modules-left = i3 title
|
||||
modules-center = nowplaying
|
||||
modules-right = task mail volume battery vpn date time
|
||||
|
||||
tray-position = none
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
format = <label-state> <label-mode>
|
||||
index-sort = true
|
||||
wrapping-scroll = false
|
||||
|
||||
; Only show workspaces on the same output as the bar
|
||||
pin-workspaces = true
|
||||
|
||||
label-mode-foreground = ${colors.mauve}
|
||||
|
||||
; focused = Active workspace on focused monitor
|
||||
label-focused = %icon%
|
||||
label-focused-foreground = ${colors.pink}
|
||||
label-focused-padding = 8pt
|
||||
|
||||
; unfocused = Inactive workspace on any monitor
|
||||
label-unfocused = %icon%
|
||||
label-unfocused-foreground = ${colors.mauve}
|
||||
label-unfocused-padding = ${self.label-focused-padding}
|
||||
|
||||
; visible = Active workspace on unfocused monitor
|
||||
label-visible = %icon%
|
||||
label-visible-foreground = ${colors.mauve}
|
||||
label-visible-padding = ${self.label-focused-padding}
|
||||
|
||||
; urgent = Workspace with urgency hint set
|
||||
label-urgent = %icon%
|
||||
label-urgent-foreground = ${colors.red}
|
||||
label-urgent-padding = ${self.label-focused-padding}
|
||||
|
||||
ws-icon-0=1;
|
||||
ws-icon-1=2;
|
||||
ws-icon-2=3;
|
||||
ws-icon-3=4;
|
||||
ws-icon-4=5;
|
||||
ws-icon-5=6;
|
||||
ws-icon-6=7;
|
||||
ws-icon-7=8;
|
||||
ws-icon-8=9;
|
||||
ws-icon-9=10;
|
||||
ws-icon-default=
|
||||
|
||||
[module/title]
|
||||
type = custom/script
|
||||
exec = i3-window-title
|
||||
tail = true
|
||||
|
||||
[module/mail]
|
||||
type = custom/script
|
||||
exec = mailcount
|
||||
interval = 10
|
||||
format-prefix = " "
|
||||
format-foreground = ${colors.red}
|
||||
|
||||
[module/task]
|
||||
type = custom/script
|
||||
exec = taskcount
|
||||
interval = 10
|
||||
format-foreground = ${colors.red}
|
||||
|
||||
[module/vpn]
|
||||
type = custom/script
|
||||
exec = mullvad-status
|
||||
tail = true
|
||||
format-foreground = ${colors.green}
|
||||
|
||||
[module/date]
|
||||
type = custom/script
|
||||
interval = 60
|
||||
|
||||
# fall back to normie date if discordian date is not available
|
||||
exec = (ddate +'%{%A, %b %d%}' || date +'%A, %b %d')
|
||||
format-foreground = ${colors.blue}
|
||||
label = %output%
|
||||
|
||||
[module/time]
|
||||
type = internal/date
|
||||
|
||||
time = "%H:%M"
|
||||
|
||||
format-foreground = ${colors.mauve}
|
||||
format-padding = 4pt
|
||||
|
||||
label = %time%
|
||||
|
||||
[module/nowplaying]
|
||||
type = custom/script
|
||||
interval = 3
|
||||
exec = media-status
|
||||
tail = true
|
||||
format-foreground = ${colors.text}
|
||||
click-left = playerctl play-pause
|
||||
label-font = 2
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
|
||||
label = Test
|
||||
format-foreground = ${colors.yellow}
|
||||
full-at = 99
|
||||
|
||||
; 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.
|
||||
poll-interval = 10
|
||||
|
||||
[module/volume]
|
||||
type = internal/pulseaudio
|
||||
format-volume-foreground = ${colors.peach}
|
||||
format-muted-foreground = ${colors.peach}
|
||||
|
||||
use-ui-max = false
|
||||
|
||||
; Interval for volume increase/decrease (in percent points)
|
||||
interval = 5
|
||||
|
||||
label-muted = ﱝ 0%
|
||||
ramp-volume-0 = 奄
|
||||
ramp-volume-1 = 奔
|
||||
ramp-volume-2 = 墳
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
click-right = pavucontrol
|
111
dot_config/private_qutebrowser/config.py
Normal file
111
dot_config/private_qutebrowser/config.py
Normal file
|
@ -0,0 +1,111 @@
|
|||
import catppuccin
|
||||
|
||||
config.load_autoconfig()
|
||||
catppuccin.setup(c, "mocha")
|
||||
|
||||
### general stuff
|
||||
# macOS keybinds :kekw:
|
||||
c.bindings.commands = {
|
||||
"normal": {
|
||||
"<Meta+t>": "open -t",
|
||||
"<Meta+w>": "tab-close",
|
||||
"<Meta+r>": "reload",
|
||||
"<Meta+1>": "tab-focus 1",
|
||||
"<Meta+2>": "tab-focus 2",
|
||||
"<Meta+3>": "tab-focus 3",
|
||||
"<Meta+4>": "tab-focus 4",
|
||||
"<Meta+5>": "tab-focus 5",
|
||||
"<Meta+6>": "tab-focus 6",
|
||||
"<Meta+7>": "tab-focus 7",
|
||||
"<Meta+8>": "tab-focus 8",
|
||||
"<Meta+9>": "tab-focus 9",
|
||||
"<Meta+0>": "tab-focus 10",
|
||||
"<Meta+q>": "quit",
|
||||
}
|
||||
}
|
||||
# search when typing in the address bar, and use DDG
|
||||
c.url.auto_search = "naive"
|
||||
c.url.searchengines = {"DEFAULT": "https://duckduckgo.com/?q={}"}
|
||||
|
||||
### rice
|
||||
# a teensy bit more padding...
|
||||
c.statusbar.padding = {"bottom": 4, "left": 4, "right": 4, "top": 4}
|
||||
c.tabs.padding = {"bottom": 4, "left": 4, "right": 4, "top": 4}
|
||||
# don't show the tab indicator
|
||||
c.tabs.indicator.width = 0
|
||||
## fonts
|
||||
c.fonts.default_size = "14pt"
|
||||
# default Comic Code
|
||||
c.fonts.default_family = "Victor Mono"
|
||||
# Inter for UI
|
||||
c.fonts.tabs.selected = "default_size Inter var"
|
||||
c.fonts.tabs.unselected = "default_size Inter var"
|
||||
c.fonts.hints = "default_size Inter var"
|
||||
# uppercase for hints, a la vimium
|
||||
c.hints.uppercase = True
|
||||
|
||||
### other stuff
|
||||
# use brave blocker + hosts file
|
||||
c.content.blocking.method = "both"
|
||||
|
||||
# self explanatory
|
||||
c.content.javascript.can_access_clipboard = True
|
||||
c.content.pdfjs = True
|
||||
|
||||
# flags
|
||||
c.qt.args = [
|
||||
"--force-color-profile=srgb",
|
||||
]
|
||||
|
||||
# experimental Privacy-Redirect
|
||||
from pprint import pprint
|
||||
import re
|
||||
from PyQt5.QtCore import QUrl
|
||||
from qutebrowser.api import interceptor
|
||||
|
||||
privacy_mappings = [
|
||||
{
|
||||
"pattern": r'.*\.youtube.com',
|
||||
"redirect": "https://iv.winston.sh",
|
||||
}
|
||||
]
|
||||
|
||||
# compile the regexes
|
||||
privacy_mappings_re = [re.compile(host["pattern"]) for host in privacy_mappings]
|
||||
|
||||
|
||||
def redirect_to_proxies(info: interceptor.Request):
|
||||
"""keep me productive by redirecting certain hosts"""
|
||||
global privacy_mappings
|
||||
req_host = info.request_url.host()
|
||||
print(info.request_url)
|
||||
|
||||
if any(host.match(req_host) for host in privacy_mappings_re):
|
||||
try:
|
||||
print([host for host in privacy_mappings_re if host["pattern"].match(req_host)])
|
||||
# info.redirect(new_url)
|
||||
except:
|
||||
pass
|
||||
return True
|
||||
|
||||
|
||||
def redirect_80_to_443(info: interceptor.Request):
|
||||
url = info.request_url
|
||||
scheme = url.scheme()
|
||||
req_host = url.host()
|
||||
allowlist = [
|
||||
"localhost",
|
||||
"127.0.0.1"
|
||||
]
|
||||
|
||||
if scheme == "http" and req_host not in allowlist:
|
||||
url.setScheme("https")
|
||||
try:
|
||||
info.redirect(url)
|
||||
except:
|
||||
pass
|
||||
return True
|
||||
|
||||
|
||||
# interceptor.register(redirect_to_proxies)
|
||||
interceptor.register(redirect_80_to_443)
|
62
dot_config/ranger/commands.py
Normal file
62
dot_config/ranger/commands.py
Normal file
|
@ -0,0 +1,62 @@
|
|||
# This is a sample commands.py. You can add your own commands here.
|
||||
#
|
||||
# Please refer to commands_full.py for all the default commands and a complete
|
||||
# documentation. Do NOT add them all here, or you may end up with defunct
|
||||
# commands when upgrading ranger.
|
||||
|
||||
# A simple command for demonstration purposes follows.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
|
||||
# You can import any python module as needed.
|
||||
import os
|
||||
|
||||
# You always need to import ranger.api.commands here to get the Command class:
|
||||
from ranger.api.commands import Command
|
||||
|
||||
|
||||
# Any class that is a subclass of "Command" will be integrated into ranger as a
|
||||
# command. Try typing ":my_edit<ENTER>" in ranger!
|
||||
class my_edit(Command):
|
||||
# The so-called doc-string of the class will be visible in the built-in
|
||||
# help that is accessible by typing "?c" inside ranger.
|
||||
""":my_edit <filename>
|
||||
|
||||
A sample command for demonstration purposes that opens a file in an editor.
|
||||
"""
|
||||
|
||||
# The execute method is called when you run this command in ranger.
|
||||
def execute(self):
|
||||
# self.arg(1) is the first (space-separated) argument to the function.
|
||||
# This way you can write ":my_edit somefilename<ENTER>".
|
||||
if self.arg(1):
|
||||
# self.rest(1) contains self.arg(1) and everything that follows
|
||||
target_filename = self.rest(1)
|
||||
else:
|
||||
# self.fm is a ranger.core.filemanager.FileManager object and gives
|
||||
# you access to internals of ranger.
|
||||
# self.fm.thisfile is a ranger.container.file.File object and is a
|
||||
# reference to the currently selected file.
|
||||
target_filename = self.fm.thisfile.path
|
||||
|
||||
# This is a generic function to print text in ranger.
|
||||
self.fm.notify("Let's edit the file " + target_filename + "!")
|
||||
|
||||
# Using bad=True in fm.notify allows you to print error messages:
|
||||
if not os.path.exists(target_filename):
|
||||
self.fm.notify("The given file does not exist!", bad=True)
|
||||
return
|
||||
|
||||
# This executes a function from ranger.core.acitons, a module with a
|
||||
# variety of subroutines that can help you construct commands.
|
||||
# Check out the source, or run "pydoc ranger.core.actions" for a list.
|
||||
self.fm.edit_file(target_filename)
|
||||
|
||||
# The tab method is called when you press tab, and should return a list of
|
||||
# suggestions that the user will tab through.
|
||||
# tabnum is 1 for <TAB> and -1 for <S-TAB> by default
|
||||
def tab(self, tabnum):
|
||||
# This is a generic tab-completion function that iterates through the
|
||||
# content of the current directory.
|
||||
return self._tab_directory_content()
|
1993
dot_config/ranger/executable_commands_full.py
Normal file
1993
dot_config/ranger/executable_commands_full.py
Normal file
File diff suppressed because it is too large
Load diff
350
dot_config/ranger/executable_scope.sh
Normal file
350
dot_config/ranger/executable_scope.sh
Normal file
|
@ -0,0 +1,350 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o noclobber -o noglob -o nounset -o pipefail
|
||||
IFS=$'\n'
|
||||
|
||||
## If the option `use_preview_script` is set to `true`,
|
||||
## then this script will be called and its output will be displayed in ranger.
|
||||
## ANSI color codes are supported.
|
||||
## STDIN is disabled, so interactive scripts won't work properly
|
||||
|
||||
## This script is considered a configuration file and must be updated manually.
|
||||
## It will be left untouched if you upgrade ranger.
|
||||
|
||||
## Because of some automated testing we do on the script #'s for comments need
|
||||
## to be doubled up. Code that is commented out, because it's an alternative for
|
||||
## example, gets only one #.
|
||||
|
||||
## Meanings of exit codes:
|
||||
## code | meaning | action of ranger
|
||||
## -----+------------+-------------------------------------------
|
||||
## 0 | success | Display stdout as preview
|
||||
## 1 | no preview | Display no preview at all
|
||||
## 2 | plain text | Display the plain content of the file
|
||||
## 3 | fix width | Don't reload when width changes
|
||||
## 4 | fix height | Don't reload when height changes
|
||||
## 5 | fix both | Don't ever reload
|
||||
## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
|
||||
## 7 | image | Display the file directly as an image
|
||||
|
||||
## Script arguments
|
||||
FILE_PATH="${1}" # Full path of the highlighted file
|
||||
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
|
||||
## shellcheck disable=SC2034 # PV_HEIGHT is provided for convenience and unused
|
||||
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
|
||||
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
|
||||
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
|
||||
|
||||
FILE_EXTENSION="${FILE_PATH##*.}"
|
||||
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
## Settings
|
||||
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||
HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
|
||||
HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
|
||||
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
|
||||
PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
|
||||
OPENSCAD_IMGSIZE=${RNGR_OPENSCAD_IMGSIZE:-1000,1000}
|
||||
OPENSCAD_COLORSCHEME=${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}
|
||||
|
||||
handle_extension() {
|
||||
case "${FILE_EXTENSION_LOWER}" in
|
||||
## Archive
|
||||
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
|
||||
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
|
||||
atool --list -- "${FILE_PATH}" && exit 5
|
||||
bsdtar --list --file "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
rar)
|
||||
## Avoid password prompt by providing empty password
|
||||
unrar lt -p- -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
7z)
|
||||
## Avoid password prompt by providing empty password
|
||||
7z l -p -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## PDF
|
||||
pdf)
|
||||
## Preview as text conversion
|
||||
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
|
||||
fmt -w "${PV_WIDTH}" && exit 5
|
||||
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
|
||||
fmt -w "${PV_WIDTH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## BitTorrent
|
||||
torrent)
|
||||
transmission-show -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## OpenDocument
|
||||
odt|ods|odp|sxw)
|
||||
## Preview as text conversion
|
||||
odt2txt "${FILE_PATH}" && exit 5
|
||||
## Preview as markdown conversion
|
||||
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## XLSX
|
||||
xlsx)
|
||||
## Preview as csv conversion
|
||||
## Uses: https://github.com/dilshod/xlsx2csv
|
||||
xlsx2csv -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## HTML
|
||||
htm|html|xhtml)
|
||||
## Preview as text conversion
|
||||
w3m -dump "${FILE_PATH}" && exit 5
|
||||
lynx -dump -- "${FILE_PATH}" && exit 5
|
||||
elinks -dump "${FILE_PATH}" && exit 5
|
||||
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
|
||||
;;
|
||||
|
||||
## JSON
|
||||
json)
|
||||
jq --color-output . "${FILE_PATH}" && exit 5
|
||||
python -m json.tool -- "${FILE_PATH}" && exit 5
|
||||
;;
|
||||
|
||||
## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
|
||||
## by file(1).
|
||||
dff|dsf|wv|wvc)
|
||||
mediainfo "${FILE_PATH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
;; # Continue with next handler on failure
|
||||
esac
|
||||
}
|
||||
|
||||
handle_image() {
|
||||
## Size of the preview if there are multiple options or it has to be
|
||||
## rendered from vector graphics. If the conversion program allows
|
||||
## specifying only one dimension while keeping the aspect ratio, the width
|
||||
## will be used.
|
||||
local DEFAULT_SIZE="1920x1080"
|
||||
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
## SVG
|
||||
# image/svg+xml|image/svg)
|
||||
# convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# exit 1;;
|
||||
|
||||
## DjVu
|
||||
# image/vnd.djvu)
|
||||
# ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \
|
||||
# - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \
|
||||
# && exit 6 || exit 1;;
|
||||
|
||||
## Image
|
||||
image/*)
|
||||
local orientation
|
||||
orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
|
||||
## If orientation data is present and the image actually
|
||||
## needs rotating ("1" means no rotation)...
|
||||
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
|
||||
## ...auto-rotate the image according to the EXIF data.
|
||||
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
|
||||
fi
|
||||
|
||||
## `w3mimgdisplay` will be called for all images (unless overriden
|
||||
## as above), but might fail for unsupported types.
|
||||
exit 7;;
|
||||
|
||||
## Video
|
||||
# video/*)
|
||||
# # Thumbnail
|
||||
# ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
|
||||
# exit 1;;
|
||||
|
||||
## PDF
|
||||
# application/pdf)
|
||||
# pdftoppm -f 1 -l 1 \
|
||||
# -scale-to-x "${DEFAULT_SIZE%x*}" \
|
||||
# -scale-to-y -1 \
|
||||
# -singlefile \
|
||||
# -jpeg -tiffcompression jpeg \
|
||||
# -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
|
||||
# && exit 6 || exit 1;;
|
||||
|
||||
|
||||
## ePub, MOBI, FB2 (using Calibre)
|
||||
# application/epub+zip|application/x-mobipocket-ebook|\
|
||||
# application/x-fictionbook+xml)
|
||||
# # ePub (using https://github.com/marianosimone/epub-thumbnailer)
|
||||
# epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \
|
||||
# "${DEFAULT_SIZE%x*}" && exit 6
|
||||
# ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \
|
||||
# >/dev/null && exit 6
|
||||
# exit 1;;
|
||||
|
||||
## Font
|
||||
application/font*|application/*opentype)
|
||||
preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
|
||||
if fontimage -o "${preview_png}" \
|
||||
--pixelsize "120" \
|
||||
--fontname \
|
||||
--pixelsize "80" \
|
||||
--text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \
|
||||
--text " abcdefghijklmnopqrstuvwxyz " \
|
||||
--text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \
|
||||
--text " The quick brown fox jumps over the lazy dog. " \
|
||||
"${FILE_PATH}";
|
||||
then
|
||||
convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \
|
||||
&& rm "${preview_png}" \
|
||||
&& exit 6
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
## Preview archives using the first image inside.
|
||||
## (Very useful for comic book collections for example.)
|
||||
# application/zip|application/x-rar|application/x-7z-compressed|\
|
||||
# application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
|
||||
# local fn=""; local fe=""
|
||||
# local zip=""; local rar=""; local tar=""; local bsd=""
|
||||
# case "${mimetype}" in
|
||||
# application/zip) zip=1 ;;
|
||||
# application/x-rar) rar=1 ;;
|
||||
# application/x-7z-compressed) ;;
|
||||
# *) tar=1 ;;
|
||||
# esac
|
||||
# { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
|
||||
# { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
|
||||
# { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
|
||||
# { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
|
||||
#
|
||||
# fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \
|
||||
# [ print(l, end='') for l in sys.stdin if \
|
||||
# (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
|
||||
# sort -V | head -n 1)
|
||||
# [ "$fn" = "" ] && return
|
||||
# [ "$bsd" ] && fn=$(printf '%b' "$fn")
|
||||
#
|
||||
# [ "$tar" ] && tar --extract --to-stdout \
|
||||
# --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
|
||||
# [ "$bsd" ] && bsdtar --extract --to-stdout \
|
||||
# --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
|
||||
# [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
|
||||
# "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
|
||||
# "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
|
||||
# ;;
|
||||
esac
|
||||
|
||||
# openscad_image() {
|
||||
# TMPPNG="$(mktemp -t XXXXXX.png)"
|
||||
# openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \
|
||||
# --imgsize="${OPENSCAD_IMGSIZE/x/,}" \
|
||||
# -o "${TMPPNG}" "${1}"
|
||||
# mv "${TMPPNG}" "${IMAGE_CACHE_PATH}"
|
||||
# }
|
||||
|
||||
# case "${FILE_EXTENSION_LOWER}" in
|
||||
# ## 3D models
|
||||
# ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH}
|
||||
# ## is hardcoded as jpeg. So we make a tempfile.png and just
|
||||
# ## move/rename it to jpg. This works because image libraries are
|
||||
# ## smart enough to handle it.
|
||||
# csg|scad)
|
||||
# openscad_image "${FILE_PATH}" && exit 6
|
||||
# ;;
|
||||
# 3mf|amf|dxf|off|stl)
|
||||
# openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6
|
||||
# ;;
|
||||
# esac
|
||||
}
|
||||
|
||||
handle_mime() {
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
## RTF and DOC
|
||||
text/rtf|*msword)
|
||||
## Preview as text conversion
|
||||
## note: catdoc does not always work for .doc files
|
||||
## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
|
||||
catdoc -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## DOCX, ePub, FB2 (using markdown)
|
||||
## You might want to remove "|epub" and/or "|fb2" below if you have
|
||||
## uncommented other methods to preview those formats
|
||||
*wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml)
|
||||
## Preview as markdown conversion
|
||||
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## XLS
|
||||
*ms-excel)
|
||||
## Preview as csv conversion
|
||||
## xls2csv comes with catdoc:
|
||||
## http://www.wagner.pp.ru/~vitus/software/catdoc/
|
||||
xls2csv -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## Text
|
||||
text/* | */xml)
|
||||
## Syntax highlight
|
||||
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
|
||||
exit 2
|
||||
fi
|
||||
if [[ "$( tput colors )" -ge 256 ]]; then
|
||||
local pygmentize_format='terminal256'
|
||||
local highlight_format='xterm256'
|
||||
else
|
||||
local pygmentize_format='terminal'
|
||||
local highlight_format='ansi'
|
||||
fi
|
||||
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
|
||||
--out-format="${highlight_format}" \
|
||||
--force -- "${FILE_PATH}" && exit 5
|
||||
env COLORTERM=8bit bat --color=always --style="plain" \
|
||||
-- "${FILE_PATH}" && exit 5
|
||||
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
|
||||
-- "${FILE_PATH}" && exit 5
|
||||
exit 2;;
|
||||
|
||||
## DjVu
|
||||
image/vnd.djvu)
|
||||
## Preview as text conversion (requires djvulibre)
|
||||
djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## Image
|
||||
image/*)
|
||||
## Preview as text conversion
|
||||
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
## Video and audio
|
||||
video/* | audio/*)
|
||||
mediainfo "${FILE_PATH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
handle_fallback() {
|
||||
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
|
||||
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
|
||||
handle_image "${MIMETYPE}"
|
||||
fi
|
||||
handle_extension
|
||||
handle_mime "${MIMETYPE}"
|
||||
handle_fallback
|
||||
|
||||
exit 1
|
765
dot_config/ranger/rc.conf
Normal file
765
dot_config/ranger/rc.conf
Normal file
|
@ -0,0 +1,765 @@
|
|||
# ===================================================================
|
||||
# This file contains the default startup commands for ranger.
|
||||
# To change them, it is recommended to create either /etc/ranger/rc.conf
|
||||
# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
|
||||
# commands there.
|
||||
#
|
||||
# If you copy this whole file there, you may want to set the environment
|
||||
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
|
||||
#
|
||||
# The purpose of this file is mainly to define keybindings and settings.
|
||||
# For running more complex python code, please create a plugin in "plugins/" or
|
||||
# a command in "commands.py".
|
||||
#
|
||||
# Each line is a command that will be run before the user interface
|
||||
# is initialized. As a result, you can not use commands which rely
|
||||
# on the UI such as :delete or :mark.
|
||||
# ===================================================================
|
||||
|
||||
# ===================================================================
|
||||
# == Options
|
||||
# ===================================================================
|
||||
|
||||
# Which viewmode should be used? Possible values are:
|
||||
# miller: Use miller columns which show multiple levels of the hierarchy
|
||||
# multipane: Midnight-commander like multipane view showing all tabs next
|
||||
# to each other
|
||||
set viewmode miller
|
||||
#set viewmode multipane
|
||||
|
||||
# How many columns are there, and what are their relative widths?
|
||||
set column_ratios 1,3,4
|
||||
|
||||
# Which files should be hidden? (regular expression)
|
||||
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
|
||||
|
||||
# Show hidden files? You can toggle this by typing 'zh'
|
||||
set show_hidden false
|
||||
|
||||
# Ask for a confirmation when running the "delete" command?
|
||||
# Valid values are "always", "never", "multiple" (default)
|
||||
# With "multiple", ranger will ask only if you delete multiple files at once.
|
||||
set confirm_on_delete multiple
|
||||
|
||||
# Use non-default path for file preview script?
|
||||
# ranger ships with scope.sh, a script that calls external programs (see
|
||||
# README.md for dependencies) to preview images, archives, etc.
|
||||
#set preview_script ~/.config/ranger/scope.sh
|
||||
|
||||
# Use the external preview script or display simple plain text or image previews?
|
||||
set use_preview_script true
|
||||
|
||||
# Automatically count files in the directory, even before entering them?
|
||||
set automatically_count_files true
|
||||
|
||||
# Open all images in this directory when running certain image viewers
|
||||
# like feh or sxiv? You can still open selected files by marking them.
|
||||
set open_all_images true
|
||||
|
||||
# Be aware of version control systems and display information.
|
||||
set vcs_aware false
|
||||
|
||||
# State of the four backends git, hg, bzr, svn. The possible states are
|
||||
# disabled, local (only show local info), enabled (show local and remote
|
||||
# information).
|
||||
set vcs_backend_git enabled
|
||||
set vcs_backend_hg disabled
|
||||
set vcs_backend_bzr disabled
|
||||
set vcs_backend_svn disabled
|
||||
|
||||
# Truncate the long commit messages to this length when shown in the statusbar.
|
||||
set vcs_msg_length 50
|
||||
|
||||
# Use one of the supported image preview protocols
|
||||
set preview_images false
|
||||
|
||||
# Set the preview image method. Supported methods:
|
||||
#
|
||||
# * w3m (default):
|
||||
# Preview images in full color with the external command "w3mimgpreview"?
|
||||
# This requires the console web browser "w3m" and a supported terminal.
|
||||
# It has been successfully tested with "xterm" and "urxvt" without tmux.
|
||||
#
|
||||
# * iterm2:
|
||||
# Preview images in full color using iTerm2 image previews
|
||||
# (http://iterm2.com/images.html). This requires using iTerm2 compiled
|
||||
# with image preview support.
|
||||
#
|
||||
# This feature relies on the dimensions of the terminal's font. By default, a
|
||||
# width of 8 and height of 11 are used. To use other values, set the options
|
||||
# iterm2_font_width and iterm2_font_height to the desired values.
|
||||
#
|
||||
# * terminology:
|
||||
# Previews images in full color in the terminology terminal emulator.
|
||||
# Supports a wide variety of formats, even vector graphics like svg.
|
||||
#
|
||||
# * urxvt:
|
||||
# Preview images in full color using urxvt image backgrounds. This
|
||||
# requires using urxvt compiled with pixbuf support.
|
||||
#
|
||||
# * urxvt-full:
|
||||
# The same as urxvt but utilizing not only the preview pane but the
|
||||
# whole terminal window.
|
||||
#
|
||||
# * kitty:
|
||||
# Preview images in full color using kitty image protocol.
|
||||
# Requires python PIL or pillow library.
|
||||
# If ranger does not share the local filesystem with kitty
|
||||
# the transfer method is changed to encode the whole image;
|
||||
# while slower, this allows remote previews,
|
||||
# for example during an ssh session.
|
||||
# Tmux is unsupported.
|
||||
#
|
||||
# * ueberzug:
|
||||
# Preview images in full color with the external command "ueberzug".
|
||||
# Images are shown by using a child window.
|
||||
# Only for users who run X11 in GNU/Linux.
|
||||
set preview_images_method w3m
|
||||
|
||||
# Delay in seconds before displaying an image with the w3m method.
|
||||
# Increase it in case of experiencing display corruption.
|
||||
set w3m_delay 0.02
|
||||
|
||||
# Manually adjust the w3mimg offset when using a terminal which needs this
|
||||
set w3m_offset 0
|
||||
|
||||
# Default iTerm2 font size (see: preview_images_method: iterm2)
|
||||
set iterm2_font_width 8
|
||||
set iterm2_font_height 11
|
||||
|
||||
# Use a unicode "..." character to mark cut-off filenames?
|
||||
set unicode_ellipsis false
|
||||
|
||||
# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
|
||||
# Requires the python-bidi pip package
|
||||
set bidi_support false
|
||||
|
||||
# Show dotfiles in the bookmark preview box?
|
||||
set show_hidden_bookmarks true
|
||||
|
||||
# Which colorscheme to use? These colorschemes are available by default:
|
||||
# default, jungle, snow, solarized
|
||||
set colorscheme default
|
||||
|
||||
# Preview files on the rightmost column?
|
||||
# And collapse (shrink) the last column if there is nothing to preview?
|
||||
set preview_files true
|
||||
set preview_directories true
|
||||
set collapse_preview true
|
||||
|
||||
# Wrap long lines in plain text previews?
|
||||
set wrap_plaintext_previews false
|
||||
|
||||
# Save the console history on exit?
|
||||
set save_console_history true
|
||||
|
||||
# Draw the status bar on top of the browser window (default: bottom)
|
||||
set status_bar_on_top false
|
||||
|
||||
# Draw a progress bar in the status bar which displays the average state of all
|
||||
# currently running tasks which support progress bars?
|
||||
set draw_progress_bar_in_status_bar true
|
||||
|
||||
# Draw borders around columns? (separators, outline, both, or none)
|
||||
# Separators are vertical lines between columns.
|
||||
# Outline draws a box around all the columns.
|
||||
# Both combines the two.
|
||||
set draw_borders none
|
||||
|
||||
# Display the directory name in tabs?
|
||||
set dirname_in_tabs false
|
||||
|
||||
# Enable the mouse support?
|
||||
set mouse_enabled true
|
||||
|
||||
# Display the file size in the main column or status bar?
|
||||
set display_size_in_main_column true
|
||||
set display_size_in_status_bar true
|
||||
|
||||
# Display the free disk space in the status bar?
|
||||
set display_free_space_in_status_bar true
|
||||
|
||||
# Display files tags in all columns or only in main column?
|
||||
set display_tags_in_all_columns true
|
||||
|
||||
# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
|
||||
set update_title false
|
||||
|
||||
# Set the tmux/screen window-name to "ranger"?
|
||||
set update_tmux_title true
|
||||
|
||||
# Shorten the title if it gets long? The number defines how many
|
||||
# directories are displayed at once, 0 turns off this feature.
|
||||
set shorten_title 3
|
||||
|
||||
# Show hostname in titlebar?
|
||||
set hostname_in_titlebar true
|
||||
|
||||
# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
|
||||
set tilde_in_titlebar false
|
||||
|
||||
# How many directory-changes or console-commands should be kept in history?
|
||||
set max_history_size 20
|
||||
set max_console_history_size 50
|
||||
|
||||
# Try to keep so much space between the top/bottom border when scrolling:
|
||||
set scroll_offset 8
|
||||
|
||||
# Flush the input after each key hit? (Noticeable when ranger lags)
|
||||
set flushinput true
|
||||
|
||||
# Padding on the right when there's no preview?
|
||||
# This allows you to click into the space to run the file.
|
||||
set padding_right true
|
||||
|
||||
# Save bookmarks (used with mX and `X) instantly?
|
||||
# This helps to synchronize bookmarks between multiple ranger
|
||||
# instances but leads to *slight* performance loss.
|
||||
# When false, bookmarks are saved when ranger is exited.
|
||||
set autosave_bookmarks true
|
||||
|
||||
# Save the "`" bookmark to disk. This can be used to switch to the last
|
||||
# directory by typing "``".
|
||||
set save_backtick_bookmark true
|
||||
|
||||
# You can display the "real" cumulative size of directories by using the
|
||||
# command :get_cumulative_size or typing "dc". The size is expensive to
|
||||
# calculate and will not be updated automatically. You can choose
|
||||
# to update it automatically though by turning on this option:
|
||||
set autoupdate_cumulative_size false
|
||||
|
||||
# Turning this on makes sense for screen readers:
|
||||
set show_cursor false
|
||||
|
||||
# One of: size, natural, basename, atime, ctime, mtime, type, random
|
||||
set sort natural
|
||||
|
||||
# Additional sorting options
|
||||
set sort_reverse false
|
||||
set sort_case_insensitive true
|
||||
set sort_directories_first true
|
||||
set sort_unicode false
|
||||
|
||||
# Enable this if key combinations with the Alt Key don't work for you.
|
||||
# (Especially on xterm)
|
||||
set xterm_alt_key false
|
||||
|
||||
# Whether to include bookmarks in cd command
|
||||
set cd_bookmarks true
|
||||
|
||||
# Changes case sensitivity for the cd command tab completion
|
||||
set cd_tab_case sensitive
|
||||
|
||||
# Use fuzzy tab completion with the "cd" command. For example,
|
||||
# ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin".
|
||||
set cd_tab_fuzzy false
|
||||
|
||||
# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
|
||||
# disable this feature.
|
||||
set preview_max_size 0
|
||||
|
||||
# The key hint lists up to this size have their sublists expanded.
|
||||
# Otherwise the submaps are replaced with "...".
|
||||
set hint_collapse_threshold 10
|
||||
|
||||
# Add the highlighted file to the path in the titlebar
|
||||
set show_selection_in_titlebar true
|
||||
|
||||
# The delay that ranger idly waits for user input, in milliseconds, with a
|
||||
# resolution of 100ms. Lower delay reduces lag between directory updates but
|
||||
# increases CPU load.
|
||||
set idle_delay 2000
|
||||
|
||||
# When the metadata manager module looks for metadata, should it only look for
|
||||
# a ".metadata.json" file in the current directory, or do a deep search and
|
||||
# check all directories above the current one as well?
|
||||
set metadata_deep_search false
|
||||
|
||||
# Clear all existing filters when leaving a directory
|
||||
set clear_filters_on_dir_change false
|
||||
|
||||
# Disable displaying line numbers in main column.
|
||||
# Possible values: false, absolute, relative.
|
||||
set line_numbers false
|
||||
|
||||
# When line_numbers=relative show the absolute line number in the
|
||||
# current line.
|
||||
set relative_current_zero false
|
||||
|
||||
# Start line numbers from 1 instead of 0
|
||||
set one_indexed false
|
||||
|
||||
# Save tabs on exit
|
||||
set save_tabs_on_exit false
|
||||
|
||||
# Enable scroll wrapping - moving down while on the last item will wrap around to
|
||||
# the top and vice versa.
|
||||
set wrap_scroll false
|
||||
|
||||
# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
|
||||
# directories, files and symlinks respectively.
|
||||
set global_inode_type_filter
|
||||
|
||||
# This setting allows to freeze the list of files to save I/O bandwidth. It
|
||||
# should be 'false' during start-up, but you can toggle it by pressing F.
|
||||
set freeze_files false
|
||||
|
||||
# Print file sizes in bytes instead of the default human-readable format.
|
||||
set size_in_bytes false
|
||||
|
||||
# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
|
||||
# give a warning when you nest ranger in a subshell started by ranger.
|
||||
# Special value "error" makes the warning more visible.
|
||||
set nested_ranger_warning true
|
||||
|
||||
# ===================================================================
|
||||
# == Local Options
|
||||
# ===================================================================
|
||||
# You can set local options that only affect a single directory.
|
||||
|
||||
# Examples:
|
||||
# setlocal path=~/downloads sort mtime
|
||||
|
||||
# ===================================================================
|
||||
# == Command Aliases in the Console
|
||||
# ===================================================================
|
||||
|
||||
alias e edit
|
||||
alias q quit
|
||||
alias q! quit!
|
||||
alias qa quitall
|
||||
alias qa! quitall!
|
||||
alias qall quitall
|
||||
alias qall! quitall!
|
||||
alias setl setlocal
|
||||
|
||||
alias filter scout -prts
|
||||
alias find scout -aets
|
||||
alias mark scout -mr
|
||||
alias unmark scout -Mr
|
||||
alias search scout -rs
|
||||
alias search_inc scout -rts
|
||||
alias travel scout -aefklst
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the browser
|
||||
# ===================================================================
|
||||
|
||||
# Basic
|
||||
map Q quitall
|
||||
map q quit
|
||||
copymap q ZZ ZQ
|
||||
|
||||
map R reload_cwd
|
||||
map F set freeze_files!
|
||||
map <C-r> reset
|
||||
map <C-l> redraw_window
|
||||
map <C-c> abort
|
||||
map <esc> change_mode normal
|
||||
map ~ set viewmode!
|
||||
|
||||
map i display_file
|
||||
map <A-j> scroll_preview 1
|
||||
map <A-k> scroll_preview -1
|
||||
map ? help
|
||||
map W display_log
|
||||
map w taskview_open
|
||||
map S shell $SHELL
|
||||
|
||||
map : console
|
||||
map ; console
|
||||
map ! console shell%space
|
||||
map @ console -p6 shell %%s
|
||||
map # console shell -p%space
|
||||
map s console shell%space
|
||||
map r chain draw_possible_programs; console open_with%space
|
||||
map f console find%space
|
||||
map cd console cd%space
|
||||
|
||||
map <C-p> chain console; eval fm.ui.console.history_move(-1)
|
||||
|
||||
# Change the line mode
|
||||
map Mf linemode filename
|
||||
map Mi linemode fileinfo
|
||||
map Mm linemode mtime
|
||||
map Mh linemode humanreadablemtime
|
||||
map Mp linemode permissions
|
||||
map Ms linemode sizemtime
|
||||
map MH linemode sizehumanreadablemtime
|
||||
map Mt linemode metatitle
|
||||
|
||||
# Tagging / Marking
|
||||
map t tag_toggle
|
||||
map ut tag_remove
|
||||
map "<any> tag_toggle tag=%any
|
||||
map <Space> mark_files toggle=True
|
||||
map v mark_files all=True toggle=True
|
||||
map uv mark_files all=True val=False
|
||||
map V toggle_visual_mode
|
||||
map uV toggle_visual_mode reverse=True
|
||||
|
||||
# For the nostalgics: Midnight Commander bindings
|
||||
map <F1> help
|
||||
map <F2> rename_append
|
||||
map <F3> display_file
|
||||
map <F4> edit
|
||||
map <F5> copy
|
||||
map <F6> cut
|
||||
map <F7> console mkdir%space
|
||||
map <F8> console delete
|
||||
#map <F8> console trash
|
||||
map <F10> exit
|
||||
|
||||
# In case you work on a keyboard with dvorak layout
|
||||
map <UP> move up=1
|
||||
map <DOWN> move down=1
|
||||
map <LEFT> move left=1
|
||||
map <RIGHT> move right=1
|
||||
map <HOME> move to=0
|
||||
map <END> move to=-1
|
||||
map <PAGEDOWN> move down=1 pages=True
|
||||
map <PAGEUP> move up=1 pages=True
|
||||
map <CR> move right=1
|
||||
#map <DELETE> console delete
|
||||
map <INSERT> console touch%space
|
||||
|
||||
# VIM-like
|
||||
copymap <UP> k
|
||||
copymap <DOWN> j
|
||||
copymap <LEFT> h
|
||||
copymap <RIGHT> l
|
||||
copymap <HOME> gg
|
||||
copymap <END> G
|
||||
copymap <PAGEDOWN> <C-F>
|
||||
copymap <PAGEUP> <C-B>
|
||||
|
||||
map J move down=0.5 pages=True
|
||||
map K move up=0.5 pages=True
|
||||
copymap J <C-D>
|
||||
copymap K <C-U>
|
||||
|
||||
# Jumping around
|
||||
map H history_go -1
|
||||
map L history_go 1
|
||||
map ] move_parent 1
|
||||
map [ move_parent -1
|
||||
map } traverse
|
||||
map { traverse_backwards
|
||||
map ) jump_non
|
||||
|
||||
map gh cd ~
|
||||
map ge cd /etc
|
||||
map gu cd /usr
|
||||
map gd cd /dev
|
||||
map gl cd -r .
|
||||
map gL cd -r %f
|
||||
map go cd /opt
|
||||
map gv cd /var
|
||||
map gm cd /media
|
||||
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
|
||||
map gM cd /mnt
|
||||
map gs cd /srv
|
||||
map gp cd /tmp
|
||||
map gr cd /
|
||||
map gR eval fm.cd(ranger.RANGERDIR)
|
||||
map g/ cd /
|
||||
map g? cd /usr/share/doc/ranger
|
||||
|
||||
# External Programs
|
||||
map E edit
|
||||
map du shell -p du --max-depth=1 -h --apparent-size
|
||||
map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
|
||||
map yp yank path
|
||||
map yd yank dir
|
||||
map yn yank name
|
||||
map y. yank name_without_extension
|
||||
|
||||
# Filesystem Operations
|
||||
map = chmod
|
||||
|
||||
map cw console rename%space
|
||||
map a rename_append
|
||||
map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
|
||||
map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
|
||||
|
||||
map pp paste
|
||||
map po paste overwrite=True
|
||||
map pP paste append=True
|
||||
map pO paste overwrite=True append=True
|
||||
map pl paste_symlink relative=False
|
||||
map pL paste_symlink relative=True
|
||||
map phl paste_hardlink
|
||||
map pht paste_hardlinked_subtree
|
||||
map pd console paste dest=
|
||||
map p`<any> paste dest=%any_path
|
||||
map p'<any> paste dest=%any_path
|
||||
|
||||
map dD console delete
|
||||
map dT console trash
|
||||
|
||||
map dd cut
|
||||
map ud uncut
|
||||
map da cut mode=add
|
||||
map dr cut mode=remove
|
||||
map dt cut mode=toggle
|
||||
|
||||
map yy copy
|
||||
map uy uncut
|
||||
map ya copy mode=add
|
||||
map yr copy mode=remove
|
||||
map yt copy mode=toggle
|
||||
|
||||
# Temporary workarounds
|
||||
map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
|
||||
map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
|
||||
map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
|
||||
map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
|
||||
map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
|
||||
map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
|
||||
map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
|
||||
map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
|
||||
|
||||
# Searching
|
||||
map / console search%space
|
||||
map n search_next
|
||||
map N search_next forward=False
|
||||
map ct search_next order=tag
|
||||
map cs search_next order=size
|
||||
map ci search_next order=mimetype
|
||||
map cc search_next order=ctime
|
||||
map cm search_next order=mtime
|
||||
map ca search_next order=atime
|
||||
|
||||
# Tabs
|
||||
map <C-n> tab_new
|
||||
map <C-w> tab_close
|
||||
map <TAB> tab_move 1
|
||||
map <S-TAB> tab_move -1
|
||||
map <A-Right> tab_move 1
|
||||
map <A-Left> tab_move -1
|
||||
map gt tab_move 1
|
||||
map gT tab_move -1
|
||||
map gn tab_new
|
||||
map gc tab_close
|
||||
map uq tab_restore
|
||||
map <a-1> tab_open 1
|
||||
map <a-2> tab_open 2
|
||||
map <a-3> tab_open 3
|
||||
map <a-4> tab_open 4
|
||||
map <a-5> tab_open 5
|
||||
map <a-6> tab_open 6
|
||||
map <a-7> tab_open 7
|
||||
map <a-8> tab_open 8
|
||||
map <a-9> tab_open 9
|
||||
map <a-r> tab_shift 1
|
||||
map <a-l> tab_shift -1
|
||||
|
||||
# Sorting
|
||||
map or set sort_reverse!
|
||||
map oz set sort=random
|
||||
map os chain set sort=size; set sort_reverse=False
|
||||
map ob chain set sort=basename; set sort_reverse=False
|
||||
map on chain set sort=natural; set sort_reverse=False
|
||||
map om chain set sort=mtime; set sort_reverse=False
|
||||
map oc chain set sort=ctime; set sort_reverse=False
|
||||
map oa chain set sort=atime; set sort_reverse=False
|
||||
map ot chain set sort=type; set sort_reverse=False
|
||||
map oe chain set sort=extension; set sort_reverse=False
|
||||
|
||||
map oS chain set sort=size; set sort_reverse=True
|
||||
map oB chain set sort=basename; set sort_reverse=True
|
||||
map oN chain set sort=natural; set sort_reverse=True
|
||||
map oM chain set sort=mtime; set sort_reverse=True
|
||||
map oC chain set sort=ctime; set sort_reverse=True
|
||||
map oA chain set sort=atime; set sort_reverse=True
|
||||
map oT chain set sort=type; set sort_reverse=True
|
||||
map oE chain set sort=extension; set sort_reverse=True
|
||||
|
||||
map dc get_cumulative_size
|
||||
|
||||
# Settings
|
||||
map zc set collapse_preview!
|
||||
map zd set sort_directories_first!
|
||||
map zh set show_hidden!
|
||||
map <C-h> set show_hidden!
|
||||
copymap <C-h> <backspace>
|
||||
copymap <backspace> <backspace2>
|
||||
map zI set flushinput!
|
||||
map zi set preview_images!
|
||||
map zm set mouse_enabled!
|
||||
map zp set preview_files!
|
||||
map zP set preview_directories!
|
||||
map zs set sort_case_insensitive!
|
||||
map zu set autoupdate_cumulative_size!
|
||||
map zv set use_preview_script!
|
||||
map zf console filter%space
|
||||
copymap zf zz
|
||||
|
||||
# Filter stack
|
||||
map .d filter_stack add type d
|
||||
map .f filter_stack add type f
|
||||
map .l filter_stack add type l
|
||||
map .m console filter_stack add mime%space
|
||||
map .n console filter_stack add name%space
|
||||
map .# console filter_stack add hash%space
|
||||
map ." filter_stack add duplicate
|
||||
map .' filter_stack add unique
|
||||
map .| filter_stack add or
|
||||
map .& filter_stack add and
|
||||
map .! filter_stack add not
|
||||
map .r filter_stack rotate
|
||||
map .c filter_stack clear
|
||||
map .* filter_stack decompose
|
||||
map .p filter_stack pop
|
||||
map .. filter_stack show
|
||||
|
||||
# Bookmarks
|
||||
map `<any> enter_bookmark %any
|
||||
map '<any> enter_bookmark %any
|
||||
map m<any> set_bookmark %any
|
||||
map um<any> unset_bookmark %any
|
||||
|
||||
map m<bg> draw_bookmarks
|
||||
copymap m<bg> um<bg> `<bg> '<bg>
|
||||
|
||||
# Generate all the chmod bindings with some python help:
|
||||
eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
|
||||
|
||||
eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the console
|
||||
# ===================================================================
|
||||
# Note: Unmapped keys are passed directly to the console.
|
||||
|
||||
# Basic
|
||||
cmap <tab> eval fm.ui.console.tab()
|
||||
cmap <s-tab> eval fm.ui.console.tab(-1)
|
||||
cmap <ESC> eval fm.ui.console.close()
|
||||
cmap <CR> eval fm.ui.console.execute()
|
||||
cmap <C-l> redraw_window
|
||||
|
||||
copycmap <ESC> <C-c>
|
||||
copycmap <CR> <C-j>
|
||||
|
||||
# Move around
|
||||
cmap <up> eval fm.ui.console.history_move(-1)
|
||||
cmap <down> eval fm.ui.console.history_move(1)
|
||||
cmap <left> eval fm.ui.console.move(left=1)
|
||||
cmap <right> eval fm.ui.console.move(right=1)
|
||||
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
||||
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
||||
cmap <a-b> eval fm.ui.console.move_word(left=1)
|
||||
cmap <a-f> eval fm.ui.console.move_word(right=1)
|
||||
|
||||
copycmap <a-b> <a-left>
|
||||
copycmap <a-f> <a-right>
|
||||
|
||||
# Line Editing
|
||||
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||
cmap <delete> eval fm.ui.console.delete(0)
|
||||
cmap <C-w> eval fm.ui.console.delete_word()
|
||||
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
|
||||
cmap <C-k> eval fm.ui.console.delete_rest(1)
|
||||
cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||
cmap <C-y> eval fm.ui.console.paste()
|
||||
|
||||
# And of course the emacs way
|
||||
copycmap <ESC> <C-g>
|
||||
copycmap <up> <C-p>
|
||||
copycmap <down> <C-n>
|
||||
copycmap <left> <C-b>
|
||||
copycmap <right> <C-f>
|
||||
copycmap <home> <C-a>
|
||||
copycmap <end> <C-e>
|
||||
copycmap <delete> <C-d>
|
||||
copycmap <backspace> <C-h>
|
||||
|
||||
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
|
||||
# and <backspace2> (code 127). To be sure, use both.
|
||||
copycmap <backspace> <backspace2>
|
||||
|
||||
# This special expression allows typing in numerals:
|
||||
cmap <allow_quantifiers> false
|
||||
|
||||
# ===================================================================
|
||||
# == Pager Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
pmap <down> pager_move down=1
|
||||
pmap <up> pager_move up=1
|
||||
pmap <left> pager_move left=4
|
||||
pmap <right> pager_move right=4
|
||||
pmap <home> pager_move to=0
|
||||
pmap <end> pager_move to=-1
|
||||
pmap <pagedown> pager_move down=1.0 pages=True
|
||||
pmap <pageup> pager_move up=1.0 pages=True
|
||||
pmap <C-d> pager_move down=0.5 pages=True
|
||||
pmap <C-u> pager_move up=0.5 pages=True
|
||||
|
||||
copypmap <UP> k <C-p>
|
||||
copypmap <DOWN> j <C-n> <CR>
|
||||
copypmap <LEFT> h
|
||||
copypmap <RIGHT> l
|
||||
copypmap <HOME> g
|
||||
copypmap <END> G
|
||||
copypmap <C-d> d
|
||||
copypmap <C-u> u
|
||||
copypmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copypmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Basic
|
||||
pmap <C-l> redraw_window
|
||||
pmap <ESC> pager_close
|
||||
copypmap <ESC> q Q i <F3>
|
||||
pmap E edit_file
|
||||
|
||||
# ===================================================================
|
||||
# == Taskview Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
tmap <up> taskview_move up=1
|
||||
tmap <down> taskview_move down=1
|
||||
tmap <home> taskview_move to=0
|
||||
tmap <end> taskview_move to=-1
|
||||
tmap <pagedown> taskview_move down=1.0 pages=True
|
||||
tmap <pageup> taskview_move up=1.0 pages=True
|
||||
tmap <C-d> taskview_move down=0.5 pages=True
|
||||
tmap <C-u> taskview_move up=0.5 pages=True
|
||||
|
||||
copytmap <UP> k <C-p>
|
||||
copytmap <DOWN> j <C-n> <CR>
|
||||
copytmap <HOME> g
|
||||
copytmap <END> G
|
||||
copytmap <C-u> u
|
||||
copytmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copytmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Changing priority and deleting tasks
|
||||
tmap J eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap K eval -q fm.ui.taskview.task_move(0)
|
||||
tmap dd eval -q fm.ui.taskview.task_remove()
|
||||
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
|
||||
tmap <delete> eval -q fm.ui.taskview.task_remove()
|
||||
|
||||
# Basic
|
||||
tmap <C-l> redraw_window
|
||||
tmap <ESC> taskview_close
|
||||
copytmap <ESC> q Q w <C-c>
|
||||
|
||||
# ===================================================================
|
||||
# old tweaks
|
||||
map % shell open -R %f
|
||||
set preview_images true
|
||||
set preview_images_method iterm2
|
284
dot_config/ranger/rifle.conf
Normal file
284
dot_config/ranger/rifle.conf
Normal file
|
@ -0,0 +1,284 @@
|
|||
# vim: ft=cfg
|
||||
#
|
||||
# This is the configuration file of "rifle", ranger's file executor/opener.
|
||||
# Each line consists of conditions and a command. For each line the conditions
|
||||
# are checked and if they are met, the respective command is run.
|
||||
#
|
||||
# Syntax:
|
||||
# <condition1> , <condition2> , ... = command
|
||||
#
|
||||
# The command can contain these environment variables:
|
||||
# $1-$9 | The n-th selected file
|
||||
# $@ | All selected files
|
||||
#
|
||||
# If you use the special command "ask", rifle will ask you what program to run.
|
||||
#
|
||||
# Prefixing a condition with "!" will negate its result.
|
||||
# These conditions are currently supported:
|
||||
# match <regexp> | The regexp matches $1
|
||||
# ext <regexp> | The regexp matches the extension of $1
|
||||
# mime <regexp> | The regexp matches the mime type of $1
|
||||
# name <regexp> | The regexp matches the basename of $1
|
||||
# path <regexp> | The regexp matches the absolute path of $1
|
||||
# has <program> | The program is installed (i.e. located in $PATH)
|
||||
# env <variable> | The environment variable "variable" is non-empty
|
||||
# file | $1 is a file
|
||||
# directory | $1 is a directory
|
||||
# number <n> | change the number of this command to n
|
||||
# terminal | stdin, stderr and stdout are connected to a terminal
|
||||
# X | A graphical environment is available (darwin, Xorg, or Wayland)
|
||||
#
|
||||
# There are also pseudo-conditions which have a "side effect":
|
||||
# flag <flags> | Change how the program is run. See below.
|
||||
# label <label> | Assign a label or name to the command so it can
|
||||
# | be started with :open_with <label> in ranger
|
||||
# | or `rifle -p <label>` in the standalone executable.
|
||||
# else | Always true.
|
||||
#
|
||||
# Flags are single characters which slightly transform the command:
|
||||
# f | Fork the program, make it run in the background.
|
||||
# | New command = setsid $command >& /dev/null &
|
||||
# r | Execute the command with root permissions
|
||||
# | New command = sudo $command
|
||||
# t | Run the program in a new terminal. If $TERMCMD is not defined,
|
||||
# | rifle will attempt to extract it from $TERM.
|
||||
# | New command = $TERMCMD -e $command
|
||||
# Note: The "New command" serves only as an illustration, the exact
|
||||
# implementation may differ.
|
||||
# Note: When using rifle in ranger, there is an additional flag "c" for
|
||||
# only running the current file even if you have marked multiple files.
|
||||
|
||||
#-------------------------------------------
|
||||
# Websites
|
||||
#-------------------------------------------
|
||||
# Rarely installed browsers get higher priority; It is assumed that if you
|
||||
# install a rare browser, you probably use it. Firefox/konqueror/w3m on the
|
||||
# other hand are often only installed as fallback browsers.
|
||||
ext x?html?, has surf, X, flag f = surf -- file://"$1"
|
||||
ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@"
|
||||
ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@"
|
||||
ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@"
|
||||
ext x?html?, has dwb, X, flag f = dwb -- "$@"
|
||||
ext x?html?, has jumanji, X, flag f = jumanji -- "$@"
|
||||
ext x?html?, has luakit, X, flag f = luakit -- "$@"
|
||||
ext x?html?, has uzbl, X, flag f = uzbl -- "$@"
|
||||
ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@"
|
||||
ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@"
|
||||
ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@"
|
||||
ext x?html?, has midori, X, flag f = midori -- "$@"
|
||||
ext x?html?, has opera, X, flag f = opera -- "$@"
|
||||
ext x?html?, has firefox, X, flag f = firefox -- "$@"
|
||||
ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@"
|
||||
ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@"
|
||||
ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
|
||||
ext x?html?, has chromium, X, flag f = chromium -- "$@"
|
||||
ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
|
||||
ext x?html?, has epiphany, X, flag f = epiphany -- "$@"
|
||||
ext x?html?, has konqueror, X, flag f = konqueror -- "$@"
|
||||
ext x?html?, has elinks, terminal = elinks "$@"
|
||||
ext x?html?, has links2, terminal = links2 "$@"
|
||||
ext x?html?, has links, terminal = links "$@"
|
||||
ext x?html?, has lynx, terminal = lynx -- "$@"
|
||||
ext x?html?, has w3m, terminal = w3m "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Misc
|
||||
#-------------------------------------------
|
||||
# Define the "editor" for text files as first action
|
||||
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
|
||||
mime ^text, label pager = "$PAGER" -- "$@"
|
||||
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
|
||||
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||
|
||||
ext 1 = man "$1"
|
||||
ext s[wmf]c, has zsnes, X = zsnes "$1"
|
||||
ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
|
||||
ext nes, has fceux, X = fceux "$1"
|
||||
ext exe = wine "$1"
|
||||
name ^[mM]akefile$ = make
|
||||
|
||||
#--------------------------------------------
|
||||
# Scripts
|
||||
#-------------------------------------------
|
||||
ext py = python -- "$1"
|
||||
ext pl = perl -- "$1"
|
||||
ext rb = ruby -- "$1"
|
||||
ext js = node -- "$1"
|
||||
ext sh = sh -- "$1"
|
||||
ext php = php -- "$1"
|
||||
|
||||
#--------------------------------------------
|
||||
# Audio without X
|
||||
#-------------------------------------------
|
||||
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
|
||||
mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
|
||||
mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
|
||||
ext midi?, terminal, has wildmidi = wildmidi -- "$@"
|
||||
|
||||
#--------------------------------------------
|
||||
# Video/Audio with a GUI
|
||||
#-------------------------------------------
|
||||
mime ^video|audio, has gmplayer, X, flag f = gmplayer -- "$@"
|
||||
mime ^video|audio, has smplayer, X, flag f = smplayer "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv -- "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
|
||||
mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@"
|
||||
mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@"
|
||||
mime ^video, has mplayer, X, flag f = mplayer -- "$@"
|
||||
mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@"
|
||||
mime ^video|audio, has vlc, X, flag f = vlc -- "$@"
|
||||
mime ^video|audio, has totem, X, flag f = totem -- "$@"
|
||||
mime ^video|audio, has totem, X, flag f = totem --fullscreen -- "$@"
|
||||
|
||||
#--------------------------------------------
|
||||
# Video without X
|
||||
#-------------------------------------------
|
||||
mime ^video, terminal, !X, has mpv = mpv -- "$@"
|
||||
mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@"
|
||||
mime ^video, terminal, !X, has mplayer = mplayer -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Documents
|
||||
#-------------------------------------------
|
||||
ext pdf, has llpp, X, flag f = llpp "$@"
|
||||
ext pdf, has zathura, X, flag f = zathura -- "$@"
|
||||
ext pdf, has mupdf, X, flag f = mupdf "$@"
|
||||
ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
|
||||
ext pdf, has apvlv, X, flag f = apvlv -- "$@"
|
||||
ext pdf, has xpdf, X, flag f = xpdf -- "$@"
|
||||
ext pdf, has evince, X, flag f = evince -- "$@"
|
||||
ext pdf, has atril, X, flag f = atril -- "$@"
|
||||
ext pdf, has okular, X, flag f = okular -- "$@"
|
||||
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
|
||||
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
|
||||
ext pdf, has open, X, flag f = open "$@"
|
||||
|
||||
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
|
||||
|
||||
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
|
||||
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
|
||||
|
||||
ext djvu, has zathura,X, flag f = zathura -- "$@"
|
||||
ext djvu, has evince, X, flag f = evince -- "$@"
|
||||
ext djvu, has atril, X, flag f = atril -- "$@"
|
||||
ext djvu, has djview, X, flag f = djview -- "$@"
|
||||
|
||||
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||
ext epub, has zathura, X, flag f = zathura -- "$@"
|
||||
ext epub, has mupdf, X, flag f = mupdf -- "$@"
|
||||
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||
|
||||
ext cbr, has zathura, X, flag f = zathura -- "$@"
|
||||
ext cbz, has zathura, X, flag f = zathura -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Images
|
||||
#-------------------------------------------
|
||||
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
||||
mime ^image/svg, has display, X, flag f = display -- "$@"
|
||||
|
||||
mime ^image, has imv, X, flag f = imv -- "$@"
|
||||
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
||||
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
||||
mime ^image, has feh, X, flag f = feh -- "$@"
|
||||
mime ^image, has mirage, X, flag f = mirage -- "$@"
|
||||
mime ^image, has ristretto, X, flag f = ristretto "$@"
|
||||
mime ^image, has eog, X, flag f = eog -- "$@"
|
||||
mime ^image, has eom, X, flag f = eom -- "$@"
|
||||
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
|
||||
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
|
||||
mime ^image, has gpicview, X, flag f = gpicview -- "$@"
|
||||
mime ^image, has gwenview, X, flag f = gwenview -- "$@"
|
||||
mime ^image, has gimp, X, flag f = gimp -- "$@"
|
||||
ext xcf, X, flag f = gimp -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Archives
|
||||
#-------------------------------------------
|
||||
|
||||
# avoid password prompt by providing empty password
|
||||
ext 7z, has 7z = 7z -p l "$@" | "$PAGER"
|
||||
# This requires atool
|
||||
ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
|
||||
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
|
||||
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
|
||||
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
|
||||
|
||||
# Listing and extracting archives without atool:
|
||||
ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | "$PAGER"
|
||||
ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
|
||||
ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
|
||||
ext zip, has unzip = unzip -l "$1" | less
|
||||
ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
|
||||
ext ace, has unace = unace l "$1" | less
|
||||
ext ace, has unace = for file in "$@"; do unace e "$file"; done
|
||||
ext rar, has unrar = unrar l "$1" | less
|
||||
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
|
||||
|
||||
#-------------------------------------------
|
||||
# Fonts
|
||||
#-------------------------------------------
|
||||
mime ^font, has fontforge, X, flag f = fontforge "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Flag t fallback terminals
|
||||
#-------------------------------------------
|
||||
# Rarely installed terminal emulators get higher priority; It is assumed that
|
||||
# if you install a rare terminal emulator, you probably use it.
|
||||
# gnome-terminal/konsole/xterm on the other hand are often installed as part of
|
||||
# a desktop environment or as fallback terminal emulators.
|
||||
mime ^ranger/x-terminal-emulator, has terminology = terminology -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@"
|
||||
mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@"
|
||||
#mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"'
|
||||
#mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@"
|
||||
mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@"
|
||||
mime ^ranger/x-terminal-emulator, has st = st -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@"
|
||||
mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@"
|
||||
mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@"
|
||||
mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@"
|
||||
mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Misc
|
||||
#-------------------------------------------
|
||||
label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
|
||||
label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
|
||||
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
|
||||
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
|
||||
|
||||
#-------------------------------------------
|
||||
# Generic file openers
|
||||
#-------------------------------------------
|
||||
label open, has xdg-open = xdg-open -- "$@"
|
||||
label open, has open = open -- "$@"
|
||||
|
||||
# Define the editor for non-text files + pager as last action
|
||||
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
|
||||
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
|
||||
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||
|
||||
|
||||
######################################################################
|
||||
# The actions below are left so low down in this file on purpose, so #
|
||||
# they are never triggered accidentally. #
|
||||
######################################################################
|
||||
|
||||
# Execute a file as program/script.
|
||||
mime application/x-executable = "$1"
|
||||
|
||||
# Move the file to trash using trash-cli.
|
||||
label trash, has trash-put = trash-put -- "$@"
|
||||
label trash = mkdir -p -- ${XDG_DATA_DIR:-$HOME/.ranger}/ranger-trash; mv -- "$@" ${XDG_DATA_DIR:-$HOME/.ranger}/ranger-trash
|
10
dot_config/redshift.conf
Normal file
10
dot_config/redshift.conf
Normal file
|
@ -0,0 +1,10 @@
|
|||
[redshift]
|
||||
location-provider=manual
|
||||
temp-day=6500
|
||||
temp-night=4500
|
||||
gamma=0.8
|
||||
|
||||
[manual]
|
||||
lat=47.06
|
||||
lon=15.45
|
||||
|
21
dot_config/rofi/colors.rasi
Normal file
21
dot_config/rofi/colors.rasi
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* colors */
|
||||
|
||||
* {
|
||||
al: #00000000;
|
||||
bg: #2A212CFF;
|
||||
bga: #0a0a0aFF;
|
||||
fg: #FF80BFFF;
|
||||
ac: #fdd835FF;
|
||||
se: #fdd8351A;
|
||||
drac-bgd: #2A212C;
|
||||
drac-cur: #544158;
|
||||
drac-fgd: #F8F8F2;
|
||||
drac-cmt: #9F70A9;
|
||||
drac-cya: #80FFEA;
|
||||
drac-grn: #8AFF80;
|
||||
drac-ora: #FFCA80;
|
||||
drac-pnk: #FF80BF;
|
||||
drac-pur: #9580FF;
|
||||
drac-red: #FF9580;
|
||||
drac-yel: #FFFF80;
|
||||
}
|
129
dot_config/rofi/config.rasi
Normal file
129
dot_config/rofi/config.rasi
Normal file
|
@ -0,0 +1,129 @@
|
|||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
font: "Jetbrains Mono NerdFont 12";
|
||||
|
||||
foreground: @drac-fgd;
|
||||
background: @drac-bgd;
|
||||
active-background: @drac-pnk;
|
||||
urgent-background: @drac-red;
|
||||
|
||||
selected-background: @active-background;
|
||||
selected-urgent-background: @urgent-background;
|
||||
selected-active-background: @active-background;
|
||||
separatorcolor: @active-background;
|
||||
bordercolor: @drac-cmt;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: @background;
|
||||
border-color: @bordercolor;
|
||||
border: 2;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#message {
|
||||
border: 1px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
padding: 1px ;
|
||||
}
|
||||
|
||||
#textbox {
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
#listview {
|
||||
fixed-height: 0;
|
||||
border: 2px 0px 0px;
|
||||
border-color: @bordercolor;
|
||||
spacing: 2px;
|
||||
scrollbar: false;
|
||||
padding: 0px 0px 0px ;
|
||||
}
|
||||
|
||||
#element {
|
||||
border: 0;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
#element.normal.normal {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
#element.normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @background;
|
||||
}
|
||||
#element.selected.normal {
|
||||
background-color: @selected-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @background;
|
||||
}
|
||||
#element.alternate.normal {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.alternate.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.alternate.active {
|
||||
background-color: @active-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#scrollbar {
|
||||
width: 2px ;
|
||||
border: 0;
|
||||
handle-width: 8px ;
|
||||
padding: 0;
|
||||
}
|
||||
#sidebar {
|
||||
border: 2px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
}
|
||||
#button.selected {
|
||||
background-color: @selected-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#inputbar {
|
||||
spacing: 0;
|
||||
text-color: @foreground;
|
||||
padding: 1px ;
|
||||
}
|
||||
#case-indicator {
|
||||
spacing: 0;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#entry {
|
||||
spacing: 0;
|
||||
text-color: @drac-cya;
|
||||
}
|
||||
#prompt {
|
||||
spacing: 0;
|
||||
text-color: @drac-grn;
|
||||
}
|
||||
#inputbar {
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}
|
||||
#textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ":";
|
||||
margin: 0px 0.3em 0em 0em ;
|
||||
text-color: @drac-grn;
|
||||
}
|
25
dot_config/rofi/confirm.rasi
Normal file
25
dot_config/rofi/confirm.rasi
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* Confirm Dialog */
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @bga;
|
||||
text-color: @fg;
|
||||
font: "Terminus 9";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 225px;
|
||||
padding: 25px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @ac;
|
||||
location: center;
|
||||
y-offset: -2em;
|
||||
}
|
||||
|
||||
entry {
|
||||
expand: true;
|
||||
text-color: @ac;
|
||||
}
|
||||
|
24
dot_config/rofi/message.rasi
Normal file
24
dot_config/rofi/message.rasi
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* Confirm Dialog */
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @bga;
|
||||
text-color: @fg;
|
||||
font: "Terminus 9";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 320px;
|
||||
padding: 25px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @ac;
|
||||
location: center;
|
||||
y-offset: -2em;
|
||||
}
|
||||
|
||||
entry {
|
||||
expand: true;
|
||||
text-color: @ac;
|
||||
}
|
113
dot_config/rofi/powermenu.rasi
Normal file
113
dot_config/rofi/powermenu.rasi
Normal file
|
@ -0,0 +1,113 @@
|
|||
configuration {
|
||||
font: "JetBrainsMono Nerd Font 10";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
drun-display-format: "{name}";
|
||||
disable-history: false;
|
||||
fullscreen: false;
|
||||
hide-scrollbar: true;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
window {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
border: 0px;
|
||||
border-color: @ac;
|
||||
border-radius: 0px;
|
||||
width: 300px;
|
||||
location: center;
|
||||
x-offset: 0;
|
||||
y-offset: 0;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 0px 0px 0px 5px;
|
||||
background-color: @al;
|
||||
text-color: @fg;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
padding: 0px 0px 0px 2px;
|
||||
background-color: @al;
|
||||
text-color: @ac;
|
||||
expand: false;
|
||||
str: "";
|
||||
font: "JetBrainsMono Nerd Font 10";
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: @al;
|
||||
text-color: @fg;
|
||||
placeholder-color: @fg;
|
||||
expand: true;
|
||||
horizontal-align: 0;
|
||||
placeholder: "Search...";
|
||||
padding: 0px;
|
||||
blink: true;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
background-color: @bga;
|
||||
text-color: @fg;
|
||||
expand: false;
|
||||
border: 0px 0px 0px 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @ac;
|
||||
margin: 0px;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
listview {
|
||||
background-color: @al;
|
||||
padding: 0px;
|
||||
columns: 1;
|
||||
lines: 5;
|
||||
spacing: 0px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @al;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @ac;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @al;
|
||||
text-color: @fg;
|
||||
orientation: horizontal;
|
||||
border-radius: 0px;
|
||||
padding: 8px 8px 8px -15px;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 24px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
expand: true;
|
||||
horizontal-align: 0;
|
||||
vertical-align: 0.5;
|
||||
margin: 0px 2.5px 0px 2.5px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @se;
|
||||
text-color: @fg;
|
||||
border: 0px 0px 0px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @ac;
|
||||
}
|
||||
|
135
dot_config/sketchybar/executable_sketchybarrc
Normal file
135
dot_config/sketchybar/executable_sketchybarrc
Normal file
|
@ -0,0 +1,135 @@
|
|||
#!/usr/bin/env bash
|
||||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
PLUGIN_DIR="$HOME/.config/sketchybar/plugins"
|
||||
|
||||
## bar appearance {{{
|
||||
sketchybar --bar \
|
||||
height=32 \
|
||||
blur_radius=10 \
|
||||
position=top \
|
||||
padding_left=0 \
|
||||
padding_right=4 \
|
||||
|
||||
# colors are managed seperately in the colordummy,
|
||||
# which listens to theme_changed events,
|
||||
# to swap between Catppuccin Mocha and Latte
|
||||
sketchybar -m --add event theme_changed AppleInterfaceThemeChangedNotification
|
||||
sketchybar \
|
||||
--add item colordummy left \
|
||||
--set colordummy \
|
||||
icon.drawing=off \
|
||||
label.drawing=off \
|
||||
script="$PLUGIN_DIR/colordummy.sh" \
|
||||
--subscribe colordummy theme_changed
|
||||
|
||||
##### Changing Defaults #####
|
||||
sketchybar --default \
|
||||
updates=when_shown \
|
||||
drawing=on \
|
||||
icon.font="Symbols Nerd Font:2048-em:18.0" \
|
||||
label.font="Inter:Regular:16.0" \
|
||||
label.padding_left=1 \
|
||||
label.padding_right=1 \
|
||||
icon.padding_left=8 \
|
||||
icon.padding_right=8
|
||||
# }}}
|
||||
|
||||
## left side of the bar {{{
|
||||
# spaces for yabai wm
|
||||
SPACE_ICONS=(
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
)
|
||||
for i in "${!SPACE_ICONS[@]}"
|
||||
do
|
||||
if [[ $i == 0 ]]; then
|
||||
lbgp=0
|
||||
else
|
||||
lbgp=1
|
||||
fi
|
||||
|
||||
sketchybar \
|
||||
--add space "space.$i" left \
|
||||
--set "space.$i" associated_space=$(($i+1)) \
|
||||
icon="${SPACE_ICONS[i]}" \
|
||||
icon.padding_left=8 \
|
||||
icon.padding_right=8 \
|
||||
background.padding_left="$lbgp" \
|
||||
background.padding_right=1 \
|
||||
background.height=32 \
|
||||
label.drawing=off \
|
||||
script="$PLUGIN_DIR/space.sh" \
|
||||
click_script="yabai -m space --focus $(($i+1))"
|
||||
done
|
||||
|
||||
# window title
|
||||
sketchybar \
|
||||
--add item window_title left \
|
||||
--set window_title \
|
||||
background.padding_left=8 \
|
||||
script="$PLUGIN_DIR/window_title.sh" \
|
||||
--subscribe window_title front_app_switched
|
||||
## }}}
|
||||
|
||||
## middle of the bar {{{
|
||||
# Apple Music Status
|
||||
sketchybar -m --add event song_update com.apple.Music.playerInfo
|
||||
sketchybar \
|
||||
--add item music center \
|
||||
--set music \
|
||||
label.font="Victor Mono:Bold Italic:16.0" \
|
||||
script="$PLUGIN_DIR/music.sh" \
|
||||
--subscribe music song_update
|
||||
# }}}
|
||||
|
||||
## right side of the bar {{{
|
||||
# this starts at the rightmost item
|
||||
# items should be self explanatory by their name, and are separated by a blank line
|
||||
sketchybar \
|
||||
\
|
||||
--add item clock right \
|
||||
--set clock \
|
||||
script="$PLUGIN_DIR/clock.sh" \
|
||||
update_freq=10 \
|
||||
\
|
||||
--add item date right \
|
||||
--set date \
|
||||
script="$PLUGIN_DIR/ddate.sh" \
|
||||
update_freq=60 \
|
||||
\
|
||||
--add item mullvad right \
|
||||
--set mullvad \
|
||||
script="$PLUGIN_DIR/mullvad.sh" \
|
||||
update_freq=10 \
|
||||
\
|
||||
--add item battery right \
|
||||
--set battery \
|
||||
update_freq=30 \
|
||||
script="$PLUGIN_DIR/battery.sh" \
|
||||
--subscribe battery system_woke \
|
||||
\
|
||||
--add item sound right \
|
||||
--set sound \
|
||||
script="$PLUGIN_DIR/sound.sh" \
|
||||
update_freq=5 \
|
||||
\
|
||||
--add item mail right \
|
||||
--set mail \
|
||||
script="$PLUGIN_DIR/mailIndicator.sh" \
|
||||
update_freq=10 \
|
||||
\
|
||||
--add item tasks right \
|
||||
--set tasks \
|
||||
script="$PLUGIN_DIR/tasks.sh" \
|
||||
update_freq=10
|
||||
|
||||
##### fin #####
|
||||
sketchybar --update
|
26
dot_config/sketchybar/plugins/executable_battery.sh
Normal file
26
dot_config/sketchybar/plugins/executable_battery.sh
Normal file
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
PERCENTAGE=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)
|
||||
CHARGING=$(pmset -g batt | grep 'AC Power')
|
||||
|
||||
if [ "$PERCENTAGE" = "" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case ${PERCENTAGE} in
|
||||
9[0-9]|100) ICON=""
|
||||
;;
|
||||
[6-8][0-9]) ICON=""
|
||||
;;
|
||||
[3-5][0-9]) ICON=""
|
||||
;;
|
||||
[1-2][0-9]) ICON=""
|
||||
;;
|
||||
*) ICON=""
|
||||
esac
|
||||
|
||||
if [[ "$CHARGING" != "" ]]; then
|
||||
ICON="⚡"
|
||||
fi
|
||||
|
||||
sketchybar --set battery icon="$ICON" label="${PERCENTAGE}%"
|
3
dot_config/sketchybar/plugins/executable_clock.sh
Normal file
3
dot_config/sketchybar/plugins/executable_clock.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
sketchybar --set "$NAME" label="$(date '+%H:%M')" icon=" "
|
150
dot_config/sketchybar/plugins/executable_colordummy.sh
Normal file
150
dot_config/sketchybar/plugins/executable_colordummy.sh
Normal file
|
@ -0,0 +1,150 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# check wether or not macOS is in dark mode
|
||||
if [[ $(defaults read -g AppleInterfaceStyle) != 'Dark' ]]; then
|
||||
THEME="light"
|
||||
else
|
||||
THEME="dark"
|
||||
fi
|
||||
|
||||
if [[ $THEME == 'dark' ]]; then
|
||||
ROSEWATER="f5e0dc"
|
||||
FLAMINGO="f2cdcd"
|
||||
PINK="f5c2e7"
|
||||
MAUVE="cba6f7"
|
||||
RED="f38ba8"
|
||||
MAROON="eba0ac"
|
||||
PEACH="fab387"
|
||||
YELLOW="f9e2af"
|
||||
GREEN="a6e3a1"
|
||||
TEAL="94e2d5"
|
||||
SKY="89dceb"
|
||||
SAPPHIRE="74c7ec"
|
||||
BLUE="89b4fa"
|
||||
LAVENDER="b4befe"
|
||||
TEXT="cdd6f4"
|
||||
SUBTEXT1="bac2de"
|
||||
SUBTEXT0="a6adc8"
|
||||
OVERLAY2="9399b2"
|
||||
OVERLAY1="7f849c"
|
||||
OVERLAY0="6c7086"
|
||||
SURFACE2="585b70"
|
||||
SURFACE1="45475a"
|
||||
SURFACE0="313244"
|
||||
BASE="1e1e2e"
|
||||
MANTLE="181825"
|
||||
CRUST="11111b"
|
||||
else
|
||||
ROSEWATER="dc8a78"
|
||||
FLAMINGO="dd7878"
|
||||
PINK="ea76cb"
|
||||
MAUVE="8839ef"
|
||||
RED="d20f39"
|
||||
MAROON="e64553"
|
||||
PEACH="fe640b"
|
||||
YELLOW="df8e1d"
|
||||
GREEN="40a02b"
|
||||
TEAL="179299"
|
||||
SKY="04a5e5"
|
||||
SAPPHIRE="209fb5"
|
||||
BLUE="1e66f5"
|
||||
LAVENDER="7287fd"
|
||||
TEXT="4c4f69"
|
||||
SUBTEXT1="5c5f77"
|
||||
SUBTEXT0="6c6f85"
|
||||
OVERLAY2="7c7f93"
|
||||
OVERLAY1="8c8fa1"
|
||||
OVERLAY0="9ca0b0"
|
||||
SURFACE2="acb0be"
|
||||
SURFACE1="bcc0cc"
|
||||
SURFACE0="ccd0da"
|
||||
CRUST="dce0e8"
|
||||
MANTLE="e6e9ef"
|
||||
BASE="eff1f5"
|
||||
fi
|
||||
|
||||
function color() {
|
||||
alpha=${2:-255}
|
||||
color="$1"
|
||||
|
||||
case $1 in
|
||||
rosewater) color=$ROSEWATER ;;
|
||||
flamingo) color=$FLAMINGO ;;
|
||||
pink) color=$PINK ;;
|
||||
mauve) color=$MAUVE ;;
|
||||
red) color=$RED ;;
|
||||
maroon) color=$MAROON ;;
|
||||
peach) color=$PEACH ;;
|
||||
yellow) color=$YELLOW ;;
|
||||
green) color=$GREEN ;;
|
||||
teal) color=$TEAL ;;
|
||||
sky) color=$SKY ;;
|
||||
sapphire) color=$SAPPHIRE ;;
|
||||
blue) color=$BLUE ;;
|
||||
lavender) color=$LAVENDER ;;
|
||||
text) color=$TEXT ;;
|
||||
subtext1) color=$SUBTEXT1 ;;
|
||||
subtext0) color=$SUBTEXT0 ;;
|
||||
overlay2) color=$OVERLAY2 ;;
|
||||
overlay1) color=$OVERLAY1 ;;
|
||||
overlay0) color=$OVERLAY0 ;;
|
||||
surface2) color=$SURFACE2 ;;
|
||||
surface1) color=$SURFACE1 ;;
|
||||
surface0) color=$SURFACE0 ;;
|
||||
crust) color=$CRUST ;;
|
||||
mantle) color=$MANTLE ;;
|
||||
base) color=$BASE ;;
|
||||
*) color=$BASE ;;
|
||||
esac
|
||||
printf -v alpha "%02x" "$alpha"
|
||||
echo "0x${alpha}${color}"
|
||||
}
|
||||
|
||||
sketchybar \
|
||||
--bar \
|
||||
color=$(color crust 200) \
|
||||
\
|
||||
--default \
|
||||
icon.color=$(color pink) \
|
||||
label.color=$(color text) \
|
||||
\
|
||||
--set /space/ \
|
||||
icon.color=$(color mauve 128) \
|
||||
icon.highlight_color=$(color pink) \
|
||||
background.highlight_color=$(color pink) \
|
||||
\
|
||||
--set window_title \
|
||||
icon.color=$(color text) \
|
||||
label.color=$(color text) \
|
||||
\
|
||||
--set music \
|
||||
icon.color=$(color subtext1) \
|
||||
label.color=$(color subtext1) \
|
||||
\
|
||||
--set clock \
|
||||
icon.color=$(color mauve) \
|
||||
label.color=$(color mauve) \
|
||||
\
|
||||
--set date \
|
||||
icon.color=$(color blue) \
|
||||
label.color=$(color blue) \
|
||||
\
|
||||
--set mullvad \
|
||||
icon.color=$(color green) \
|
||||
label.color=$(color green) \
|
||||
\
|
||||
--set battery \
|
||||
icon.color=$(color yellow) \
|
||||
label.color=$(color yellow) \
|
||||
\
|
||||
--set sound \
|
||||
icon.color=$(color peach) \
|
||||
label.color=$(color peach) \
|
||||
\
|
||||
--set mail \
|
||||
icon.color=$(color red) \
|
||||
label.color=$(color red) \
|
||||
\
|
||||
--set tasks \
|
||||
icon.color=$(color red) \
|
||||
label.color=$(color red)
|
4
dot_config/sketchybar/plugins/executable_ddate.sh
Normal file
4
dot_config/sketchybar/plugins/executable_ddate.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DATE="$(ddate +'%{%A, %b %d%}')"
|
||||
sketchybar --set "$NAME" label="$DATE" icon=" "
|
30
dot_config/sketchybar/plugins/executable_mailIndicator.sh
Normal file
30
dot_config/sketchybar/plugins/executable_mailIndicator.sh
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
UNREAD_ONLY=false
|
||||
MAIL_DIR=~/.local/share/mail
|
||||
|
||||
COUNT=0
|
||||
|
||||
if [[ -d ${MAIL_DIR} ]]; then
|
||||
for dir in "${MAIL_DIR}"/*/; do
|
||||
# get file count for the unread mailbox, add to count
|
||||
unreads=$( find "${dir}INBOX/new" | wc -l)
|
||||
COUNT=$((COUNT+unreads))
|
||||
|
||||
# also add the rest of the inbox if var is set
|
||||
if ! ($UNREAD_ONLY); then
|
||||
other=$( find "${dir}INBOX/new" | wc -l)
|
||||
COUNT=$((COUNT+other))
|
||||
fi
|
||||
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ $COUNT -gt 0 ]]; then
|
||||
ICON=" "
|
||||
LABEL="$COUNT"
|
||||
else
|
||||
ICON=" "
|
||||
fi
|
||||
|
||||
sketchybar --set "$NAME" label="$LABEL" icon="$ICON"
|
21
dot_config/sketchybar/plugins/executable_mullvad.sh
Normal file
21
dot_config/sketchybar/plugins/executable_mullvad.sh
Normal file
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# path where mullvad is kept
|
||||
PATH=/usr/local/bin:$PATH
|
||||
|
||||
if command -v mullvad &> /dev/null; then
|
||||
MULLVAD_STATUS=$(mullvad status)
|
||||
|
||||
if echo "$MULLVAD_STATUS" | grep -q 'Connected'; then
|
||||
OUTPUT=$(mullvad status | cut -d " " -f 3 | cut -d "-" -f 1 | tr '/a-z/' '/A-Z/')
|
||||
ICON=" "
|
||||
else
|
||||
ICON=" "
|
||||
fi
|
||||
|
||||
else
|
||||
ICON=" "
|
||||
OUTPUT=""
|
||||
fi
|
||||
|
||||
sketchybar --set "$NAME" icon="$ICON" label="$OUTPUT"
|
22
dot_config/sketchybar/plugins/executable_music.sh
Normal file
22
dot_config/sketchybar/plugins/executable_music.sh
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
if pgrep -xq Music; then
|
||||
STATE=$(osascript -e 'tell application "Music" to player state as string' 2>/dev/null || echo "")
|
||||
TRACK=$(osascript -e 'tell application "Music" to name of current track as string' 2>/dev/null || echo "")
|
||||
ARTIST=$(osascript -e 'tell application "Music" to album artist of current track as string' 2>/dev/null || echo "")
|
||||
|
||||
if [ "$STATE" = "playing" ]; then
|
||||
ICON=""
|
||||
LABEL="$ARTIST - $TRACK"
|
||||
else
|
||||
ICON=""
|
||||
if [ "$TRACK" = "" ] || [ "$ARTIST" = "" ]; then
|
||||
LABEL="paused"
|
||||
else
|
||||
LABEL="$ARTIST - $TRACK"
|
||||
fi
|
||||
fi
|
||||
sketchybar --set "$NAME" icon="$ICON" label="$LABEL" --add event "${NAME}-changed"
|
||||
else
|
||||
sketchybar --set "$NAME" icon="" label="" --add event "${NAME}-changed"
|
||||
fi
|
25
dot_config/sketchybar/plugins/executable_sound.sh
Normal file
25
dot_config/sketchybar/plugins/executable_sound.sh
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
VOLUME=$(osascript -e "get volume settings" | cut -d " " -d ":" -f2 | cut -d "," -f1)
|
||||
MUTED=$(osascript -e "get volume settings" | grep "muted:true")
|
||||
|
||||
if [[ "$MUTED" != "" ]]; then
|
||||
ICON="ﱝ"
|
||||
else
|
||||
case ${VOLUME} in
|
||||
100) ICON="";;
|
||||
9[0-9]) ICON="";;
|
||||
8[0-9]) ICON="";;
|
||||
7[0-9]) ICON="";;
|
||||
6[0-9]) ICON="";;
|
||||
5[0-9]) ICON="";;
|
||||
4[0-9]) ICON="";;
|
||||
3[0-9]) ICON="";;
|
||||
2[0-9]) ICON="";;
|
||||
1[0-9]) ICON="";;
|
||||
[0-9]) ICON="";;
|
||||
*) ICON=""
|
||||
esac
|
||||
fi
|
||||
|
||||
sketchybar --set "$NAME" icon="$ICON" label="$VOLUME%"
|
3
dot_config/sketchybar/plugins/executable_space.sh
Normal file
3
dot_config/sketchybar/plugins/executable_space.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
sketchybar --set "$NAME" icon.highlight="$SELECTED" background.drawing="$SELECTED"
|
19
dot_config/sketchybar/plugins/executable_tasks.sh
Normal file
19
dot_config/sketchybar/plugins/executable_tasks.sh
Normal file
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
urg=$(task count due.before:tomorrow status:pending)
|
||||
week=$(task count due.before:eow status:pending)
|
||||
month=$(task count due.before:eom status:pending)
|
||||
total=$(task count status:pending)
|
||||
|
||||
if [[ $total -eq 0 ]]; then
|
||||
ICON=" "
|
||||
LABEL="All done"
|
||||
elif [[ $urg -eq 0 ]]; then
|
||||
ICON=" "
|
||||
LABEL="$week/$month/$total"
|
||||
else
|
||||
ICON=" "
|
||||
LABEL="$week/$month/$total"
|
||||
fi
|
||||
|
||||
sketchybar --set "$NAME" label="$LABEL" icon="$ICON"
|
69
dot_config/sketchybar/plugins/executable_window_title.sh
Normal file
69
dot_config/sketchybar/plugins/executable_window_title.sh
Normal file
|
@ -0,0 +1,69 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
case "$INFO" in
|
||||
# IDEs
|
||||
"CLion") ;&
|
||||
"GoLand") ;&
|
||||
"PhpStorm") ;&
|
||||
"PyCharm") ;&
|
||||
"WebStorm") ;&
|
||||
"Lapce") ;&
|
||||
"Xcode") ICON=" ";;
|
||||
"Neovide") ICON=" ";;
|
||||
|
||||
# developer
|
||||
"Docker") ICON=" ";;
|
||||
|
||||
# terminals
|
||||
"Kitty") ;&
|
||||
"iTerm") ;&
|
||||
"Terminal") ;&
|
||||
"WezTerm") ICON=" ";;
|
||||
|
||||
# browsers
|
||||
"Chromium") ICON=" ";;
|
||||
"Firefox") ICON=" ";;
|
||||
"Safari") ICON=" ";;
|
||||
"qutebrowser") ICON=" ";;
|
||||
|
||||
# system
|
||||
"App Store") ICON=" ";;
|
||||
"Books") ICON=" ";;
|
||||
"Finder") ICON=" ";;
|
||||
"Music") ICON="ﱘ ";;
|
||||
"Podcasts") ICON=" ";;
|
||||
"Photos") ICON=" ";;
|
||||
"Preview") ICON=" ";;
|
||||
"System Preferences") ICON=" ";;
|
||||
|
||||
# chat
|
||||
"Discord") ICON="ﭮ ";;
|
||||
"Mattermost") ICON=" ";;
|
||||
"Slack") ICON=" ";;
|
||||
|
||||
# creativity
|
||||
"Affinity Designer") ICON=" ";;
|
||||
"Affinity Photo") ICON=" ";;
|
||||
"Affinity Publisher") ICON=" ";;
|
||||
"Blender") ICON=" ";;
|
||||
"Final Cut") ICON=" ";;
|
||||
"Garageband") ICON=" ";;
|
||||
"Logic Pro X") ICON=" ";;
|
||||
"iMovie") ICON=" ";;
|
||||
|
||||
# password managers
|
||||
"GPG Keychain") ;&
|
||||
"KeePassXC") ;&
|
||||
"LastPass") ;&
|
||||
"1Password") ICON=" ";;
|
||||
|
||||
# other
|
||||
"Audible") ICON=" ";;
|
||||
"Pocket Casts") ICON=" ";;
|
||||
"Setapp") ICON=" ";;
|
||||
"Spotify") ICON=" ";;
|
||||
"Steam") ICON=" ";;
|
||||
*) ICON="ﬓ ";;
|
||||
esac
|
||||
|
||||
sketchybar --set "$NAME" label="$INFO" icon="$ICON"
|
74
dot_config/skhd/skhdrc
Normal file
74
dot_config/skhd/skhdrc
Normal file
|
@ -0,0 +1,74 @@
|
|||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
# Link to yabairc for <g-f>: ~/.config/yabai/yabairc
|
||||
|
||||
# WORKS WITH SIP ENABLED:
|
||||
# focus window
|
||||
cmd + ctrl - h : yabai -m window --focus west
|
||||
cmd + ctrl - j : yabai -m window --focus south
|
||||
cmd + ctrl - k : yabai -m window --focus north
|
||||
cmd + ctrl - l : yabai -m window --focus east
|
||||
|
||||
# move window
|
||||
cmd + shift - h : yabai -m window --warp west
|
||||
cmd + shift - j : yabai -m window --warp south
|
||||
cmd + shift - k : yabai -m window --warp north
|
||||
cmd + shift - l : yabai -m window --warp east
|
||||
|
||||
cmd + shift - d: yabai -m window --toggle float
|
||||
|
||||
cmd + shift - return : open -na "WezTerm.app"
|
||||
cmd - f2 : open -na "Firefox"
|
||||
# open Ranger
|
||||
cmd - f3 : wezterm start ranger $HOME
|
||||
# alternative: open Finder
|
||||
# cmd - f3 : open "$HOME"
|
||||
|
||||
# restart yabai
|
||||
cmd + alt - r : launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai"
|
||||
|
||||
# ONLY WORKS WITH SIP DISABLED: {{{
|
||||
# fast focus space left/right
|
||||
ctrl - left : yabai -m space --focus prev
|
||||
ctrl - right : yabai -m space --focus next
|
||||
|
||||
# switch to space
|
||||
# cmd - 1 : yabai -m space --focus 1
|
||||
# cmd - 2 : yabai -m space --focus 2
|
||||
# cmd - 3 : yabai -m space --focus 3
|
||||
# cmd - 4 : yabai -m space --focus 4
|
||||
# cmd - 5 : yabai -m space --focus 5
|
||||
# cmd - 6 : yabai -m space --focus 6
|
||||
# cmd - 7 : yabai -m space --focus 7
|
||||
# cmd - 8 : yabai -m space --focus 8
|
||||
# cmd - 9 : yabai -m space --focus 9
|
||||
# cmd - 0 : yabai -m space --focus 10
|
||||
cmd + ctrl - 1 : yabai -m space --focus 1
|
||||
cmd + ctrl - 2 : yabai -m space --focus 2
|
||||
cmd + ctrl - 3 : yabai -m space --focus 3
|
||||
cmd + ctrl - 4 : yabai -m space --focus 4
|
||||
cmd + ctrl - 5 : yabai -m space --focus 5
|
||||
cmd + ctrl - 6 : yabai -m space --focus 6
|
||||
cmd + ctrl - 7 : yabai -m space --focus 7
|
||||
cmd + ctrl - 8 : yabai -m space --focus 8
|
||||
cmd + ctrl - 9 : yabai -m space --focus 9
|
||||
cmd + ctrl - 0 : yabai -m space --focus 10
|
||||
|
||||
# send window to desktop and follow focus
|
||||
cmd + shift - 1 : yabai -m window --space 1; yabai -m space --focus 1
|
||||
cmd + shift - 2 : yabai -m window --space 2; yabai -m space --focus 2
|
||||
cmd + shift - 3 : yabai -m window --space 3; yabai -m space --focus 3
|
||||
cmd + shift - 4 : yabai -m window --space 4; yabai -m space --focus 4
|
||||
cmd + shift - 5 : yabai -m window --space 5; yabai -m space --focus 5
|
||||
cmd + shift - 6 : yabai -m window --space 6; yabai -m space --focus 6
|
||||
cmd + shift - 7 : yabai -m window --space 7; yabai -m space --focus 7
|
||||
cmd + shift - 8 : yabai -m window --space 8; yabai -m space --focus 8
|
||||
cmd + shift - 9 : yabai -m window --space 9; yabai -m space --focus 9
|
||||
cmd + shift - 0 : yabai -m window --space 10; yabai -m space --focus 10
|
||||
|
||||
# move spaces between displays
|
||||
# 2B is '<'
|
||||
cmd + shift - 0x2B : yabai -m space --display prev
|
||||
# 2F is '>'
|
||||
cmd + shift - 0x2F : yabai -m space --display next
|
||||
# }}}
|
274
dot_config/starship.toml
Normal file
274
dot_config/starship.toml
Normal file
|
@ -0,0 +1,274 @@
|
|||
# Get editor completions based on the config schema
|
||||
'$schema' = 'https://starship.rs/config-schema.json'
|
||||
|
||||
### MAIN SHELL
|
||||
# directory | username@hostname | cmd duration | sudo | VCS | language versions | kubernetes
|
||||
# > input after line break
|
||||
format = """
|
||||
$directory\
|
||||
$username\
|
||||
$hostname\
|
||||
$container\
|
||||
$sudo\
|
||||
$shlvl\
|
||||
$vcsh\
|
||||
$git_branch\
|
||||
$git_commit\
|
||||
$git_state\
|
||||
$git_metrics\
|
||||
$git_status\
|
||||
$hg_branch\
|
||||
$cmd_duration\
|
||||
$status\
|
||||
$fill\
|
||||
$package\
|
||||
$buf\
|
||||
$c\
|
||||
$cmake\
|
||||
$cobol\
|
||||
$conda\
|
||||
$crystal\
|
||||
$dart\
|
||||
$deno\
|
||||
$dotnet\
|
||||
$elixir\
|
||||
$elm\
|
||||
$erlang\
|
||||
$golang\
|
||||
$haskell\
|
||||
$helm\
|
||||
$java\
|
||||
$julia\
|
||||
$kotlin\
|
||||
$lua\
|
||||
$nim\
|
||||
$nix_shell\
|
||||
$nodejs\
|
||||
$ocaml\
|
||||
$perl\
|
||||
$php\
|
||||
$pulumi\
|
||||
$purescript\
|
||||
$python\
|
||||
$red\
|
||||
$rlang\
|
||||
$ruby\
|
||||
$rust\
|
||||
$scala\
|
||||
$spack\
|
||||
$swift\
|
||||
$vlang\
|
||||
$vagrant\
|
||||
$zig\
|
||||
$aws\
|
||||
$azure\
|
||||
$gcloud\
|
||||
$openstack\
|
||||
$docker_context\
|
||||
$kubernetes\
|
||||
$terraform\
|
||||
$line_break\
|
||||
$shell\
|
||||
$character"""
|
||||
add_newline = true
|
||||
|
||||
[character]
|
||||
success_symbol = '[ﬦ](bold blue) '
|
||||
error_symbol = '[ﬦ](bold blue) '
|
||||
vicmd_symbol = '[](bold green) '
|
||||
|
||||
[directory]
|
||||
style = 'fg:bright-cyan'
|
||||
read_only = ' '
|
||||
use_os_path_sep = false # fuck windows :verynice:
|
||||
|
||||
[directory.substitutions]
|
||||
'.config' = ' '
|
||||
'Code' = ' '
|
||||
'Desktop' = ' '
|
||||
'Documents' = ' '
|
||||
'Downloads' = ' '
|
||||
'Music' = ' '
|
||||
'Pictures' = ' '
|
||||
'Work' = ' '
|
||||
'git' = ' '
|
||||
|
||||
[username]
|
||||
format = '\[[$user]($style)\]'
|
||||
|
||||
[sudo]
|
||||
disabled = false
|
||||
format = '\[[$symbol]($style)\]'
|
||||
style = 'fg:red'
|
||||
symbol = ' '
|
||||
|
||||
[git_branch]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol$branch]($style)\]'
|
||||
style = 'fg:bright-purple'
|
||||
|
||||
[git_status]
|
||||
format = '(\[[$all_status$ahead_behind]($style)\] )'
|
||||
style = 'fg:bright-purple'
|
||||
|
||||
[hg_branch]
|
||||
format = '\[[$symbol$branch]($style)\]'
|
||||
|
||||
[cmd_duration]
|
||||
format = '\[[ﮫ $duration]($style)\]'
|
||||
|
||||
[fill]
|
||||
symbol = '─'
|
||||
style = 'fg:black'
|
||||
|
||||
### LANGUAGE VERSION INDICATORS
|
||||
[c]
|
||||
format = '\[[$symbol($version(-$name))]($style)\]'
|
||||
|
||||
[cmake]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[cobol]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[conda]
|
||||
format = '\[[$symbol$environment]($style)\]'
|
||||
|
||||
[crystal]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[dart]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[deno]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[dotnet]
|
||||
format = '\[[$symbol($version)(🎯 $tfm)]($style)\]'
|
||||
|
||||
[elixir]
|
||||
format = '\[[$symbol($version \(OTP $otp_version\))]($style)\]'
|
||||
|
||||
[elm]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[erlang]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[golang]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[haskell]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[helm]
|
||||
symbol = 'ﴱ '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[java]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[julia]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[kotlin]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[lua]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[nim]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[nix_shell]
|
||||
format = '\[[$symbol$state( \($name\))]($style)\]'
|
||||
|
||||
[nodejs]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
detect_extensions = []
|
||||
style = 'green'
|
||||
|
||||
[ocaml]
|
||||
format = '\[[$symbol($version)(\($switch_indicator$switch_name\))]($style)\]'
|
||||
|
||||
[package]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol$version]($style)\]'
|
||||
style = '16'
|
||||
|
||||
[perl]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[php]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[pulumi]
|
||||
format = '\[[$symbol$stack]($style)\]'
|
||||
|
||||
[purescript]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[python]
|
||||
symbol = ' '
|
||||
format = '\[[${symbol}${pyenv_prefix}(${version})(\($virtualenv\))]($style)\]'
|
||||
|
||||
[red]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[ruby]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[rust]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[scala]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[spack]
|
||||
format = '\[[$symbol$environment]($style)\]'
|
||||
|
||||
[swift]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[vagrant]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[vlang]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[zig]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
### CONTEXT INDICATORS
|
||||
[aws]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($profile)(\($region\))(\[$duration\])]($style)\]'
|
||||
|
||||
[docker_context]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol$context]($style)\]'
|
||||
|
||||
[gcloud]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol$account(@$domain)(\($region\))]($style)\]'
|
||||
|
||||
[kubernetes]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol($cluster/$namespace)]($style)\]'
|
||||
disabled = false
|
||||
|
||||
[openstack]
|
||||
symbol = ' '
|
||||
format = '\[[$symbol$cloud(\($project\))]($style)\]'
|
||||
|
||||
[terraform]
|
||||
format = '\[[$symbol$workspace]($style)\]'
|
101
dot_config/task/no-color.theme
Normal file
101
dot_config/task/no-color.theme
Normal file
|
@ -0,0 +1,101 @@
|
|||
###############################################################################
|
||||
#
|
||||
# Copyright 2006 - 2021, Tomas Babej, Paul Beckingham, Federico Hernandez.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
# https://www.opensource.org/licenses/mit-license.php
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
rule.precedence.color=deleted,completed,active,keyword.,tag.,project.,overdue,scheduled,due.today,due,blocked,blocking,recurring,tagged,uda.
|
||||
|
||||
# This is a theme that disables all default colors
|
||||
# It can be used as template for other themes
|
||||
|
||||
# General decoration
|
||||
color.label=
|
||||
color.label.sort=
|
||||
color.alternate=
|
||||
color.header=
|
||||
color.footnote=
|
||||
color.warning=
|
||||
color.error=
|
||||
color.debug=
|
||||
|
||||
# Task state
|
||||
color.completed=
|
||||
color.deleted=
|
||||
color.active=
|
||||
color.recurring=
|
||||
color.scheduled=
|
||||
color.until=
|
||||
color.blocked=
|
||||
color.blocking=
|
||||
|
||||
# Project
|
||||
color.project.none=
|
||||
|
||||
# Priority
|
||||
color.uda.priority.H=
|
||||
color.uda.priority.L=
|
||||
color.uda.priority.M=
|
||||
|
||||
# Tags
|
||||
color.tag.next=
|
||||
color.tag.none=
|
||||
color.tagged=
|
||||
|
||||
# Due
|
||||
color.due=
|
||||
color.due.today=
|
||||
color.overdue=
|
||||
|
||||
# Report: burndown
|
||||
color.burndown.done=
|
||||
color.burndown.pending=
|
||||
color.burndown.started=
|
||||
|
||||
# Report: history
|
||||
color.history.add=
|
||||
color.history.delete=
|
||||
color.history.done=
|
||||
|
||||
# Report: summary
|
||||
color.summary.background=
|
||||
color.summary.bar=
|
||||
|
||||
# Command: calendar
|
||||
color.calendar.due=
|
||||
color.calendar.due.today=
|
||||
color.calendar.holiday=
|
||||
color.calendar.overdue=
|
||||
color.calendar.today=
|
||||
color.calendar.weekend=
|
||||
color.calendar.weeknumber=
|
||||
|
||||
# Command: sync
|
||||
color.sync.added=
|
||||
color.sync.changed=
|
||||
color.sync.rejected=
|
||||
|
||||
# Command: undo
|
||||
color.undo.after=
|
||||
color.undo.before=
|
||||
|
76
dot_config/task/taskrc
Normal file
76
dot_config/task/taskrc
Normal file
|
@ -0,0 +1,76 @@
|
|||
# Files
|
||||
data.location=~/.local/share/task
|
||||
hooks.location=~/.config/task/hooks
|
||||
|
||||
# Color theme
|
||||
include ~/.config/task/no-color.theme
|
||||
|
||||
news.version=2.6.0
|
||||
context.work.read=tag:work
|
||||
context.work.write=tag:work
|
||||
|
||||
# Bugwarrior UDAs
|
||||
uda.githubtitle.type=string
|
||||
uda.githubtitle.label=Github Title
|
||||
uda.githubbody.type=string
|
||||
uda.githubbody.label=Github Body
|
||||
uda.githubcreatedon.type=date
|
||||
uda.githubcreatedon.label=Github Created
|
||||
uda.githubupdatedat.type=date
|
||||
uda.githubupdatedat.label=Github Updated
|
||||
uda.githubclosedon.type=date
|
||||
uda.githubclosedon.label=GitHub Closed
|
||||
uda.githubmilestone.type=string
|
||||
uda.githubmilestone.label=Github Milestone
|
||||
uda.githubrepo.type=string
|
||||
uda.githubrepo.label=Github Repo Slug
|
||||
uda.githuburl.type=string
|
||||
uda.githuburl.label=Github URL
|
||||
uda.githubtype.type=string
|
||||
uda.githubtype.label=Github Type
|
||||
uda.githubnumber.type=numeric
|
||||
uda.githubnumber.label=Github Issue/PR #
|
||||
uda.githubuser.type=string
|
||||
uda.githubuser.label=Github User
|
||||
uda.githubnamespace.type=string
|
||||
uda.githubnamespace.label=Github Namespace
|
||||
uda.githubstate.type=string
|
||||
uda.githubstate.label=GitHub State
|
||||
uda.gitlabtitle.type=string
|
||||
uda.gitlabtitle.label=Gitlab Title
|
||||
uda.gitlabdescription.type=string
|
||||
uda.gitlabdescription.label=Gitlab Description
|
||||
uda.gitlabcreatedon.type=date
|
||||
uda.gitlabcreatedon.label=Gitlab Created
|
||||
uda.gitlabupdatedat.type=date
|
||||
uda.gitlabupdatedat.label=Gitlab Updated
|
||||
uda.gitlabduedate.type=date
|
||||
uda.gitlabduedate.label=Gitlab Due Date
|
||||
uda.gitlabmilestone.type=string
|
||||
uda.gitlabmilestone.label=Gitlab Milestone
|
||||
uda.gitlaburl.type=string
|
||||
uda.gitlaburl.label=Gitlab URL
|
||||
uda.gitlabrepo.type=string
|
||||
uda.gitlabrepo.label=Gitlab Repo Slug
|
||||
uda.gitlabtype.type=string
|
||||
uda.gitlabtype.label=Gitlab Type
|
||||
uda.gitlabnumber.type=string
|
||||
uda.gitlabnumber.label=Gitlab Issue/MR #
|
||||
uda.gitlabstate.type=string
|
||||
uda.gitlabstate.label=Gitlab Issue/MR State
|
||||
uda.gitlabupvotes.type=numeric
|
||||
uda.gitlabupvotes.label=Gitlab Upvotes
|
||||
uda.gitlabdownvotes.type=numeric
|
||||
uda.gitlabdownvotes.label=Gitlab Downvotes
|
||||
uda.gitlabwip.type=numeric
|
||||
uda.gitlabwip.label=Gitlab MR Work-In-Progress Flag
|
||||
uda.gitlabauthor.type=string
|
||||
uda.gitlabauthor.label=Gitlab Author
|
||||
uda.gitlabassignee.type=string
|
||||
uda.gitlabassignee.label=Gitlab Assignee
|
||||
uda.gitlabnamespace.type=string
|
||||
uda.gitlabnamespace.label=Gitlab Namespace
|
||||
uda.gitlabweight.type=numeric
|
||||
uda.gitlabweight.label=Gitlab Weight
|
||||
# END Bugwarrior UDAs
|
||||
context=work
|
93
dot_config/tmux/tmux.conf
Normal file
93
dot_config/tmux/tmux.conf
Normal file
|
@ -0,0 +1,93 @@
|
|||
# reset ^B to ^S
|
||||
unbind C-b
|
||||
set -g prefix C-s
|
||||
bind-key -r C-s send-prefix
|
||||
|
||||
|
||||
# simple reload key
|
||||
bind-key r source-file ~/.tmux.conf \; display-message '~/.tmux.conf reloaded'
|
||||
# vim-like arrows to switch and resize panes
|
||||
unbind-key Up
|
||||
unbind-key Down
|
||||
unbind-key Left
|
||||
unbind-key Right
|
||||
unbind-key M-Up
|
||||
unbind-key M-Down
|
||||
unbind-key M-Left
|
||||
unbind-key M-Right
|
||||
unbind-key C-Up
|
||||
unbind-key C-Down
|
||||
unbind-key C-Left
|
||||
unbind-key C-Right
|
||||
|
||||
unbind-key |
|
||||
unbind-key -
|
||||
|
||||
# what the fuck
|
||||
bind-key \\ split-window -h -c "#{pane_current_path}"
|
||||
bind-key - split-window -v -c "#{pane_current_path}"
|
||||
# i can't explain this but it makes sense coming from vim
|
||||
|
||||
bind-key h select-pane -L
|
||||
bind-key j select-pane -D
|
||||
bind-key k select-pane -U
|
||||
bind-key l select-pane -R
|
||||
bind-key -r M-h resize-pane -L
|
||||
bind-key -r M-j resize-pane -D
|
||||
bind-key -r M-k resize-pane -U
|
||||
bind-key -r M-l resize-pane -R
|
||||
|
||||
bind-key -r C-h resize-pane -L 5
|
||||
bind-key -r C-j resize-pane -D 5
|
||||
bind-key -r C-k resize-pane -U 5
|
||||
bind-key -r C-l resize-pane -R 5
|
||||
|
||||
# start counting tabs and panes at 1
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set -g pane-border-format "#{pane_index} #{pane_current_command}"
|
||||
unbind-key 0
|
||||
bind-key 0 select-window -t 10
|
||||
set-option -sg escape-time 0
|
||||
|
||||
set-window-option -g mode-keys vi
|
||||
set-option -g focus-events on
|
||||
set-option -g default-terminal 'screen-256color'
|
||||
set-option -g terminal-overrides ',xterm-256color:RGB'
|
||||
|
||||
# couple of vi mode keybinds
|
||||
unbind -T copy-mode-vi Space; #Default for begin-selection
|
||||
unbind -T copy-mode-vi Enter; #Default for copy-selection
|
||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
|
||||
|
||||
set -g @plugin 'jaclu/tmux-menus'
|
||||
set -g @plugin 'jimeh/tmux-themepack'
|
||||
set -g @plugin 'schasse/tmux-jump'
|
||||
set -g @plugin 'spywhere/tmux-now-playing'
|
||||
set -g @plugin 'tmux-plugins/tmux-cowboy'
|
||||
set -g @plugin 'tmux-plugins/tmux-maildir-counter'
|
||||
set -g @plugin 'tmux-plugins/tmux-open'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-urlview'
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
|
||||
# tmux-menus
|
||||
set -g @menus_location_x 'C'
|
||||
set -g @menus_location_y 'C'
|
||||
set -g @menus_trigger 'm'
|
||||
|
||||
# now playing
|
||||
set -g @now-playing-status-format '{icon} {scrollable}'
|
||||
set -g @now-playing-scrollable-format '{artist} - {title}'
|
||||
set -g @now-playing-playing-icon '|>'
|
||||
|
||||
# tmux-themepack
|
||||
set -g @themepack-status-right-area-left-format '#{now_playing}'
|
||||
set -g @themepack 'powerline/block/blue'
|
||||
|
||||
set -g @jump-key 'f'
|
||||
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.config/tmux/plugins'
|
||||
|
||||
run -b '~/.config/tmux/plugins/tpm/tpm'
|
13
dot_config/vdirsyncer/encrypted_config.asc
Normal file
13
dot_config/vdirsyncer/encrypted_config.asc
Normal file
|
@ -0,0 +1,13 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAQoIAa54tk/NeNbqv3NUspAtE0Jg58eilpplJo+2HpGEw
|
||||
+PzXokq0phL7UCrc0FRVD6lkT4LNX1cluf3JOKWmwagfUWaXhSPu9K+mEuAC7nbJ
|
||||
0sB/AeTU4hM3LX3KORSPx1+YhJ/XZDXX2f7eo0+RC4uTILF6nX8wYmynXKEFSbGp
|
||||
PrmRSkBPVRqNHvB9QKppRgF4sjMtXz+2iGHKIomhv5EHmsbaFvI5tnJARIe40jyL
|
||||
6wKQBEEkfTPf+0Manw9FaMSdL7+wnl4C1Yvea7CjpwVgXgFNCsp5svIQFoooQJIZ
|
||||
+YhL8UGYigbljuSV514n9cz1GuGX0UsdFvbTBf/XJyzMDQdkJikmxo8QjBAPlkai
|
||||
Riu/4K0Q6HJAXuh16Vg9aQZVlkdaoD3MkfJ+EeLIjtmaulLAwHSrhDxLeuDOrLoy
|
||||
hvJGhAWstj7Qg8DLDIckQLabGlG5sZDGvPnohr9CMLWSAp9Y/bXEzTLmGTLJOgvp
|
||||
JCN/UYpGRv4Js3TfRjXHJjYO4AkiixdcrKlMIyCEJ0oJrw==
|
||||
=oC6M
|
||||
-----END PGP MESSAGE-----
|
238
dot_config/wezterm/wezterm.lua
Normal file
238
dot_config/wezterm/wezterm.lua
Normal file
|
@ -0,0 +1,238 @@
|
|||
-- vim:foldmethod=marker:foldlevel=1
|
||||
local wezterm = require("wezterm")
|
||||
|
||||
local catppuccin = require("colors/catppuccin/catppuccin").setup({
|
||||
sync_flavours = {
|
||||
light = "latte",
|
||||
dark = "mocha",
|
||||
},
|
||||
})
|
||||
|
||||
-- fonts I like, with the settings I prefer {{{
|
||||
-- kept seperately from the rest of the config so that I can easily change them
|
||||
local fonts = {
|
||||
cascadia = wezterm.font({
|
||||
family = "Cascadia Code",
|
||||
harfbuzz_features = {
|
||||
"ss01=1",
|
||||
"ss19=1",
|
||||
},
|
||||
}),
|
||||
comic = wezterm.font("Comic Code Ligatures"),
|
||||
fira = wezterm.font({
|
||||
family = "Fira Code",
|
||||
harfbuzz_features = {
|
||||
"cv06=1",
|
||||
"cv14=1",
|
||||
"cv32=1",
|
||||
"ss04=1",
|
||||
"ss07=1",
|
||||
"ss09=1",
|
||||
},
|
||||
}),
|
||||
fantasque = wezterm.font("Fantasque Sans Mono"),
|
||||
victor = wezterm.font({
|
||||
family = "Victor Mono",
|
||||
weight = "DemiBold",
|
||||
}),
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- make numbers superscript or subscript {{{
|
||||
---@diagnostic disable-next-line: unused-local,unused-function
|
||||
local function style_number(number, style)
|
||||
local superscript = {
|
||||
"⁰",
|
||||
"¹",
|
||||
"²",
|
||||
"³",
|
||||
"⁴",
|
||||
"⁵",
|
||||
"⁶",
|
||||
"⁷",
|
||||
"⁸",
|
||||
"⁹",
|
||||
}
|
||||
local subscript = {
|
||||
"₀",
|
||||
"₁",
|
||||
"₂",
|
||||
"₃",
|
||||
"₄",
|
||||
"₅",
|
||||
"₆",
|
||||
"₇",
|
||||
"₈",
|
||||
"₉",
|
||||
}
|
||||
|
||||
local numbers = (style == "super") and superscript or subscript
|
||||
|
||||
local number_string = tostring(number)
|
||||
local result = ""
|
||||
for i = 1, #number_string do
|
||||
local char = number_string:sub(i, i)
|
||||
local nr = tonumber(char)
|
||||
if number then
|
||||
result = result .. numbers[nr + 1]
|
||||
else
|
||||
result = result .. char
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- custom tab bar {{{
|
||||
---@diagnostic disable-next-line: unused-local
|
||||
wezterm.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width)
|
||||
local RIGHT_DIVIDER = utf8.char(0xe0bc)
|
||||
|
||||
local active_tab_index = 0
|
||||
for _, t in ipairs(tabs) do
|
||||
if t.is_active == true then
|
||||
active_tab_index = t.tab_index
|
||||
end
|
||||
end
|
||||
|
||||
local active_bg = config.colors.tab_bar.active_tab.bg_color
|
||||
local active_fg = config.colors.tab_bar.active_tab.fg_color
|
||||
local inactive_bg = config.colors.tab_bar.inactive_tab.bg_color
|
||||
local inactive_fg = config.colors.tab_bar.inactive_tab.fg_color
|
||||
local new_tab_bg = config.colors.tab_bar.new_tab.bg_color
|
||||
|
||||
local s_bg, s_fg, e_bg, e_fg
|
||||
|
||||
-- the last tab
|
||||
if tab.tab_index == #tabs - 1 then
|
||||
if tab.is_active then
|
||||
s_bg = active_bg
|
||||
s_fg = active_fg
|
||||
e_bg = new_tab_bg
|
||||
e_fg = active_bg
|
||||
else
|
||||
s_bg = inactive_bg
|
||||
s_fg = inactive_fg
|
||||
e_bg = new_tab_bg
|
||||
e_fg = inactive_bg
|
||||
end
|
||||
elseif tab.tab_index == active_tab_index - 1 then
|
||||
s_bg = inactive_bg
|
||||
s_fg = inactive_fg
|
||||
e_bg = active_bg
|
||||
e_fg = inactive_bg
|
||||
elseif tab.is_active then
|
||||
s_bg = active_bg
|
||||
s_fg = active_fg
|
||||
e_bg = inactive_bg
|
||||
e_fg = active_bg
|
||||
else
|
||||
s_bg = inactive_bg
|
||||
s_fg = inactive_fg
|
||||
e_bg = inactive_bg
|
||||
e_fg = inactive_bg
|
||||
end
|
||||
return {
|
||||
{ Background = { Color = s_bg } },
|
||||
{ Foreground = { Color = s_fg } },
|
||||
{ Text = " " .. tab.tab_index + 1 .. ": " .. tab.active_pane.title .. " " },
|
||||
{ Background = { Color = e_bg } },
|
||||
{ Foreground = { Color = e_fg } },
|
||||
{ Text = RIGHT_DIVIDER },
|
||||
}
|
||||
end)
|
||||
-- }}}
|
||||
|
||||
local function get_os()
|
||||
local target = wezterm.target_triple
|
||||
if string.find(target, "linux") then
|
||||
return "linux"
|
||||
elseif string.find(target, "darwin") then
|
||||
return "macos"
|
||||
else
|
||||
-- who cares
|
||||
return "OH GOD PLEASE NO"
|
||||
end
|
||||
end
|
||||
|
||||
local window_padding = {}
|
||||
if get_os() == "linux" then
|
||||
window_padding = {
|
||||
left = 0,
|
||||
right = 0,
|
||||
top = 0,
|
||||
bottom = 0,
|
||||
}
|
||||
elseif get_os() == "macos" then
|
||||
window_padding = {
|
||||
left = 2,
|
||||
right = 2,
|
||||
top = 2,
|
||||
bottom = 2,
|
||||
}
|
||||
end
|
||||
|
||||
local act = wezterm.action
|
||||
|
||||
return {
|
||||
---- keyboard shortcuts
|
||||
disable_default_key_bindings = false,
|
||||
leader = { key = "s", mods = "CTRL", timeout_milliseconds = 5000 },
|
||||
keys = {
|
||||
-- use 'Backslash' to split horizontally
|
||||
{
|
||||
key = "\\",
|
||||
mods = "LEADER",
|
||||
action = act({ SplitHorizontal = { domain = "CurrentPaneDomain" } }),
|
||||
},
|
||||
-- and 'Minus' to split vertically
|
||||
{
|
||||
key = "-",
|
||||
mods = "LEADER",
|
||||
action = act({ SplitVertical = { domain = "CurrentPaneDomain" } }),
|
||||
},
|
||||
-- 'hjkl' to move between panes
|
||||
{ key = "h", mods = "LEADER", action = act({ ActivatePaneDirection = "Left" }) },
|
||||
{ key = "j", mods = "LEADER", action = act({ ActivatePaneDirection = "Down" }) },
|
||||
{ key = "k", mods = "LEADER", action = act({ ActivatePaneDirection = "Up" }) },
|
||||
{ key = "l", mods = "LEADER", action = act({ ActivatePaneDirection = "Right" }) },
|
||||
-- -- Shift + 'hjkl' to resize panes
|
||||
{ key = "h", mods = "LEADER|SHIFT", action = act({ AdjustPaneSize = { "Left", 5 } }) },
|
||||
{ key = "j", mods = "LEADER|SHIFT", action = act({ AdjustPaneSize = { "Down", 5 } }) },
|
||||
{ key = "k", mods = "LEADER|SHIFT", action = act({ AdjustPaneSize = { "Up", 5 } }) },
|
||||
{ key = "l", mods = "LEADER|SHIFT", action = act({ AdjustPaneSize = { "Right", 5 } }) },
|
||||
-- numbers to navigate to tabs
|
||||
{ key = "1", mods = "LEADER", action = act({ ActivateTab = 0 }) },
|
||||
{ key = "2", mods = "LEADER", action = act({ ActivateTab = 1 }) },
|
||||
{ key = "3", mods = "LEADER", action = act({ ActivateTab = 2 }) },
|
||||
{ key = "4", mods = "LEADER", action = act({ ActivateTab = 3 }) },
|
||||
{ key = "5", mods = "LEADER", action = act({ ActivateTab = 4 }) },
|
||||
{ key = "6", mods = "LEADER", action = act({ ActivateTab = 5 }) },
|
||||
{ key = "7", mods = "LEADER", action = act({ ActivateTab = 6 }) },
|
||||
{ key = "8", mods = "LEADER", action = act({ ActivateTab = 7 }) },
|
||||
{ key = "9", mods = "LEADER", action = act({ ActivateTab = 8 }) },
|
||||
{ key = "9", mods = "LEADER", action = act({ ActivateTab = 9 }) },
|
||||
-- 'c' to create a new tab
|
||||
{ key = "c", mods = "LEADER", action = act({ SpawnTab = "CurrentPaneDomain" }) },
|
||||
-- 'x' to kill the current pane
|
||||
{ key = "x", mods = "LEADER", action = act({ CloseCurrentPane = { confirm = true } }) },
|
||||
-- 'z' to toggle the zoom for the current pane
|
||||
{ key = "z", mods = "LEADER", action = "TogglePaneZoomState" },
|
||||
-- 'v' to visually select in the current pane
|
||||
{ key = "v", mods = "LEADER", action = "ActivateCopyMode" },
|
||||
},
|
||||
-- font
|
||||
font_size = 18,
|
||||
font = fonts.victor,
|
||||
use_fancy_tab_bar = false,
|
||||
tab_bar_at_bottom = true,
|
||||
hide_tab_bar_if_only_one_tab = true,
|
||||
tab_max_width = 32,
|
||||
-- window
|
||||
window_decorations = "RESIZE",
|
||||
window_padding = window_padding,
|
||||
-- theme
|
||||
colors = catppuccin,
|
||||
-- nightly only
|
||||
clean_exit_codes = { 130 },
|
||||
}
|
87
dot_config/yabai/executable_yabairc
Normal file
87
dot_config/yabai/executable_yabairc
Normal file
|
@ -0,0 +1,87 @@
|
|||
#!/usr/bin/env bash
|
||||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
# Link to skhrc for <g-f>: ~/.config/skhd/skhdrc
|
||||
|
||||
# when SIP is disabled {{{
|
||||
sudo yabai --load-sa
|
||||
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
|
||||
|
||||
# ensure that there are always 10 spaces
|
||||
spacestocreate=$(expr 10 - "$(yabai -m query --spaces | jq length)")
|
||||
while [ "$spacestocreate" -gt 0 ]; do
|
||||
yabai -m space --create
|
||||
spacestocreate=$(expr "$spacestocreate" - 1)
|
||||
done
|
||||
# }}}
|
||||
|
||||
# apps which should
|
||||
# - not be managed
|
||||
# - not stick
|
||||
# - a layer above
|
||||
APPS_ABOVE=(
|
||||
"JetBrains Toolbox"
|
||||
"Mullvad VPN"
|
||||
"Sip"
|
||||
"iStat Menus Status"
|
||||
)
|
||||
|
||||
APPS_UNMANAGED=(
|
||||
"CleanShot X"
|
||||
"System Preferences"
|
||||
)
|
||||
|
||||
# special rules for windows/apps
|
||||
for app in "${APPS_ABOVE[@]}"; do
|
||||
yabai -m rule --add app="^$app\$" manage=off sticky=off layer=above border=off
|
||||
done
|
||||
for app in "${APPS_UNMANAGED[@]}"; do
|
||||
yabai -m rule --add app="^$app\$" manage=off border=off
|
||||
done
|
||||
|
||||
# global settings
|
||||
# MOUSE FOCUS: useless when SIP is enabled, borked when disabled.
|
||||
# yabai -m config mouse_follows_focus on
|
||||
# yabai -m config focus_follows_mouse on
|
||||
|
||||
# MOUSE MODIFIER: this actually works, wewlad.
|
||||
# shit experience though, since CMD + click is commonly used throughout apps.
|
||||
yabai -m config mouse_modifier fn
|
||||
yabai -m config mouse_action1 move
|
||||
yabai -m config mouse_action2 resize
|
||||
yabai -m config mouse_drop_action swap
|
||||
|
||||
# a sad imitation of i3
|
||||
yabai -m config window_origin_display default
|
||||
yabai -m config window_placement second_child
|
||||
# keep this turned off if you want to take screenshots...
|
||||
# -> https://github.com/koekeishiya/yabai/discussions/1079
|
||||
#yabai -m config window_topmost off
|
||||
|
||||
# welcome to the ricefields, motherfucker
|
||||
yabai -m config active_window_border_color 0xfff5c2e7
|
||||
yabai -m config normal_window_border_color 0xffb4befe
|
||||
yabai -m config insert_feedback_color 0xfff9e2af
|
||||
yabai -m config window_border on
|
||||
yabai -m config window_border_width 4
|
||||
yabai -m config window_opacity off
|
||||
# SIP disabled only? FeelsBadMan
|
||||
yabai -m config window_shadow float
|
||||
|
||||
# other shit
|
||||
yabai -m config auto_balance off
|
||||
yabai -m config split_ratio 0.50
|
||||
|
||||
# general space settings
|
||||
yabai -m config layout bsp
|
||||
yabai -m config top_padding 8
|
||||
yabai -m config bottom_padding 8
|
||||
yabai -m config left_padding 8
|
||||
yabai -m config right_padding 8
|
||||
yabai -m config window_gap 8
|
||||
|
||||
# when using uebersicht, add a 30 rel px gap on the top
|
||||
yabai -m config external_bar all:30:0
|
||||
# yabai -m config external_bar all:0:0
|
||||
|
||||
printf "\n\n\nRELOAD: finished loading yabai conf\n"
|
78
dot_gitconfig
Normal file
78
dot_gitconfig
Normal file
|
@ -0,0 +1,78 @@
|
|||
; vim:fenc=utf-8:ft=gitconfig
|
||||
|
||||
; identity & authentication
|
||||
[include]
|
||||
path = ~/.config/git/pseudonym
|
||||
|
||||
; using 'pass' as the password manager
|
||||
[credential]
|
||||
helper = !pass-git-helper $@
|
||||
useHttpPath = true
|
||||
|
||||
; change identity based on the cwd
|
||||
; work
|
||||
[includeIf "gitdir:~/git/work/"]
|
||||
path = ~/.config/git/work
|
||||
; freelance
|
||||
[includeIf "gitdir:~/git/freelance/"]
|
||||
path = ~/.config/git/personal
|
||||
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
autocrlf = input
|
||||
pager = diff-so-fancy | less --tabs=4 -RFX
|
||||
|
||||
[interactive]
|
||||
diffFilter = diff-so-fancy --patch
|
||||
|
||||
[alias]
|
||||
up = "!git remote update -p; git merge --ff-only @{u}"
|
||||
patch = "!git --no-pager diff --no-color"
|
||||
zip = "!git archive --format=zip --output=$(basename $(git rev-parse --show-toplevel)).zip $(git rev-parse --short HEAD)"
|
||||
gzip = "!git archive --format=tar.gz --output=$(basename $(git rev-parse --show-toplevel)).tar.gz $(git rev-parse --short HEAD)"
|
||||
logo = log --format=format:'%>|(8)%Cblue%h%Creset %Cgreen%><(14)%ar%Creset %C(dim)[%G?]%Creset %s%C(yellow)%d%Creset'
|
||||
lol = log --graph --format=format:'%>|(14)%Cblue%h%Creset %Cgreen%><(14)%ar%Creset %C(dim)[%G?]%Creset %s%C(yellow)%d%Creset'
|
||||
lola = log --graph --format=format:'%>|(14)%Cblue%h%Creset %Cgreen%><(14)%ar%Creset %C(dim)[%G?]%Creset %s%C(yellow)%d%Creset' --all
|
||||
yolo = !git commit -m \"chore: $(curl -s whatthecommit.com/index.txt)\"
|
||||
|
||||
[commit]
|
||||
gpgSign = true
|
||||
|
||||
[push]
|
||||
default = current
|
||||
|
||||
[format]
|
||||
signoff = true
|
||||
|
||||
[grep]
|
||||
lineNumber = true
|
||||
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[color]
|
||||
branch = auto
|
||||
diff = auto
|
||||
status = auto
|
||||
|
||||
[color "branch"]
|
||||
current = yellow reverse
|
||||
local = yellow
|
||||
remote = green
|
||||
|
||||
[color "diff"]
|
||||
meta = yellow bold
|
||||
frag = magenta bold
|
||||
old = red bold
|
||||
new = green bold
|
||||
|
||||
[color "status"]
|
||||
added = yellow
|
||||
changed = green
|
||||
untracked = cyan
|
59
dot_ideavimrc
Normal file
59
dot_ideavimrc
Normal file
|
@ -0,0 +1,59 @@
|
|||
""" map leader to <space> ----------------------------------------------------
|
||||
let mapleader=" "
|
||||
|
||||
""" emulated plugins
|
||||
" use 'c|d|yia' to c|d|y inner arguments
|
||||
set argtextobj
|
||||
" enable gcc / gc+motion to toggle comments
|
||||
set commentary
|
||||
" jump around text easier, with <space> as leader
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
" highlight yank. duh.
|
||||
set highlightedyank
|
||||
" vim navigation for the dir tree view
|
||||
set NERDTree
|
||||
set ReplaceWithRegister
|
||||
set surround
|
||||
set textobj-entire
|
||||
|
||||
""" Common settings ----------------------------------------------------------
|
||||
" '_' is a word separator
|
||||
set iskeyword-=_
|
||||
set relativenumber
|
||||
set number
|
||||
" scroll offset
|
||||
set scrolloff=5
|
||||
set sidescrolloff=5
|
||||
" don't use Ex mode, use Q for formatting.
|
||||
map Q gq
|
||||
|
||||
""" IDEA-specific settings ---------------------------------------------------
|
||||
set ideamarks
|
||||
set ideajoin
|
||||
set ideastatusicon=gray
|
||||
|
||||
""" Mappings -----------------------------------------------------------------
|
||||
" IDEA binds
|
||||
map <leader>a <Action>(Annotate)
|
||||
map <leader>b <Action>(ToggleLineBreakpoint)
|
||||
map <leader>h <Action>(Vcs.ShowTabbedFileHistory)
|
||||
map <leader>r <Action>(RenameElement)
|
||||
map <leader>z <Action>(ToggleDistractionFreeMode)
|
||||
|
||||
" plugin binds
|
||||
map <C-N> :NERDTreeToggle<CR>
|
||||
|
||||
" easier split navigation
|
||||
nnoremap <C-J> <C-W><C-J>
|
||||
nnoremap <C-K> <C-W><C-K>
|
||||
nnoremap <C-L> <C-W><C-L>
|
||||
nnoremap <C-H> <C-W><C-H>
|
||||
nnoremap <C-J> <C-W><C-J>
|
||||
nnoremap <C-K> <C-W><C-K>
|
||||
nnoremap <C-L> <C-W><C-L>
|
||||
nnoremap <C-H> <C-W><C-H>
|
||||
|
||||
sethandler <C-D> a:vim
|
||||
sethandler <C-U> a:vim
|
||||
sethandler <C-R> n:ide
|
||||
|
202
dot_kube/encrypted_private_config.asc
Normal file
202
dot_kube/encrypted_private_config.asc
Normal file
|
@ -0,0 +1,202 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
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
|
||||
=15NS
|
||||
-----END PGP MESSAGE-----
|
50
dot_local/bin/executable_fix_xcursor
Normal file
50
dot_local/bin/executable_fix_xcursor
Normal file
|
@ -0,0 +1,50 @@
|
|||
#! /bin/bash
|
||||
#
|
||||
# /usr/bin/setcursor
|
||||
|
||||
# config files
|
||||
gtk2=$HOME/.gtkrc-2.0
|
||||
gtk3=$HOME/.config/gtk-3.0/settings.ini
|
||||
[[ -e $HOME/.extend.Xresources ]] && xr=$HOME/.extend.Xresources || xr=$HOME/.Xresources
|
||||
|
||||
# we'll have to override libxcursor's default
|
||||
default=share/icons/default/index.theme
|
||||
glob_default=/usr/$default
|
||||
user_default=$HOME/.local/$default
|
||||
[[ -e $glob_default ]] && [[ ! -e $user_default ]] && install -D $glob_default $user_default
|
||||
|
||||
# cursor-theme entries
|
||||
cursor_gtk2=$(grep "cursor-theme-name" $gtk2 | cut -d'"' -f2)
|
||||
cursor_gtk3=$(grep "cursor-theme-name" $gtk3 | cut -d'=' -f2)
|
||||
cursor_xr=$(grep "Xcursor.theme" $xr | cut -d' ' -f2)
|
||||
|
||||
cursor=$1
|
||||
|
||||
# find config last modified
|
||||
if [ -z $1 ]; then
|
||||
cursor=$cursor_gtk2; newest=$gtk2
|
||||
[[ $xr -nt $gtk2 ]] && [[ ! -z $cursor_xr ]] && cursor=$cursor_xr && newest=$xr
|
||||
[[ $gtk3 -nt $newest ]] && [[ ! -z $cursor_gtk3 ]] && cursor=$cursor_gtk3
|
||||
fi
|
||||
|
||||
# Strip any quotes from cursor string
|
||||
cursor=$(echo $cursor | sed -e 's/"//g')
|
||||
|
||||
# set theme in all config files
|
||||
echo "setting cursortheme \"$cursor\""
|
||||
[[ "$cursor" != "$cursor_xr" ]] && \
|
||||
sed -i "s/Xcursor.theme:.*/Xcursor.theme: $cursor/g" $xr &>/dev/null && \
|
||||
xrdb -merge -I$HOME ~/.Xresources
|
||||
[[ "$cursor" != "$cursor_gtk2" ]] && \
|
||||
sed -i "s/cursor-theme-name=\".*\"/cursor-theme-name=\"$cursor\"/" $gtk2
|
||||
[[ "$cursor" != "$cursor_gtk3" ]] && \
|
||||
sed -i "s/cursor-theme-name=.*/cursor-theme-name=$cursor/" $gtk3 &>/dev/null
|
||||
[[ -e $user_default ]] && sed -i "s/Inherits=.*/Inherits=$cursor/" $user_default &>/dev/null
|
||||
|
||||
# and in the realms of the GNOMEs
|
||||
[[ -f /usr/bin/gconftool-2 ]] && gconftool-2 --type string -s /desktop/gnome/peripherals/mouse/cursor $cursor
|
||||
[[ -f /usr/bin/gsettings ]] && gsettings set org.gnome.desktop.interface cursor-theme $cursor
|
||||
|
||||
exit
|
||||
|
||||
# oberon 2016
|
103
dot_local/bin/executable_i3-scrot
Normal file
103
dot_local/bin/executable_i3-scrot
Normal file
|
@ -0,0 +1,103 @@
|
|||
#!/bin/bash
|
||||
# simple screenshot-script using scrot for manjaro-i3 by oberon@manjaro.org
|
||||
|
||||
_conf=$HOME/.config/i3-scrot.conf
|
||||
|
||||
if ! [ -f $_conf ]; then
|
||||
echo "scrot_dir=$(xdg-user-dir PICTURES)" > $_conf
|
||||
fi
|
||||
|
||||
source $_conf
|
||||
|
||||
if ! [ -d $scrot_dir ]; then
|
||||
mkdir -p $scrot_dir
|
||||
fi
|
||||
|
||||
if ! [[ -z "$2" ]]; then
|
||||
cmd="scrot -d $2"
|
||||
else
|
||||
cmd='scrot'
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
--desk|-d|$NULL)
|
||||
cd $scrot_dir
|
||||
$cmd &&
|
||||
sleep 1 &&
|
||||
notify-send "screenshot has been saved in $scrot_dir"
|
||||
;;
|
||||
--window|-w)
|
||||
cd $scrot_dir
|
||||
$cmd -u &&
|
||||
sleep 1 &&
|
||||
notify-send "screenshot has been saved in $scrot_dir"
|
||||
;;
|
||||
--select|-s)
|
||||
cd $scrot_dir
|
||||
notify-send 'select an area for the screenshot' &
|
||||
scrot -s &&
|
||||
sleep 1 && notify-send "screenshot has been saved in $scrot_dir"
|
||||
;;
|
||||
--desk-to-clipboard|-dc|$NULL)
|
||||
cd $scrot_dir
|
||||
scrot -e 'xclip -selection clipboard -t image/png -i $f && rm $f' &&
|
||||
sleep 1 &&
|
||||
notify-send "screenshot has been copied to clipboard"
|
||||
;;
|
||||
--window-to-clipboard|-wc)
|
||||
cd $scrot_dir
|
||||
scrot -u -e 'xclip -selection clipboard -t image/png -i $f && rm $f' &&
|
||||
sleep 1 &&
|
||||
notify-send "screenshot has been copied to clipboard"
|
||||
;;
|
||||
--select-to-clipboard|-sc)
|
||||
cd $scrot_dir
|
||||
notify-send 'select an area for the screenshot' &
|
||||
scrot -s -e 'xclip -selection clipboard -t image/png -i $f && rm $f' &&
|
||||
sleep 1 && notify-send "screenshot has been copied to clipboard"
|
||||
;;
|
||||
--help|-h)
|
||||
echo "
|
||||
available options:
|
||||
-d | --desk full screen
|
||||
-w | --window active window
|
||||
-s | --select selection
|
||||
-dc | --desk-to-clipboard full screen to clipboard
|
||||
-wc | --window-to-clipboard active window to clipboard
|
||||
-sc | --select-to-clipboard selection to clipboard
|
||||
-h | --help display this information
|
||||
|
||||
The -d, -w, -dc, and -wc options can be used with a delay
|
||||
by adding the number of seconds, like for example:
|
||||
'i3-scrot -w 5'
|
||||
|
||||
Default option is 'full screen'.
|
||||
|
||||
The file destination can be set in ${_conf}.
|
||||
Default is $scrot_dir
|
||||
"
|
||||
;;
|
||||
*)
|
||||
echo "
|
||||
== ! i3-scrot: missing or wrong argument ! ==
|
||||
|
||||
available options:
|
||||
-d | --desk full screen
|
||||
-w | --window active window
|
||||
-s | --select selection
|
||||
-dc | --desk-to-clipboard full screen to clipboard
|
||||
-wc | --window-to-clipboard active window to clipboard
|
||||
-sc | --select-to-clipboard selection to clipboard
|
||||
-h | --help display this information
|
||||
|
||||
Default option is 'full screen'.
|
||||
|
||||
The file destination can be set in ${_conf}.
|
||||
Default is $scrot_dir
|
||||
"
|
||||
|
||||
exit 2
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
35
dot_local/bin/executable_i3exit
Normal file
35
dot_local/bin/executable_i3exit
Normal file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/sh
|
||||
|
||||
# with openrc use loginctl
|
||||
[ "$(cat /proc/1/comm)" = "systemd" ] && logind=systemctl || logind=loginctl
|
||||
|
||||
case "$1" in
|
||||
lock)
|
||||
xscreensaver-command -lock
|
||||
;;
|
||||
logout)
|
||||
i3-msg exit
|
||||
;;
|
||||
switch_user)
|
||||
dm-tool switch-to-greeter
|
||||
;;
|
||||
suspend)
|
||||
xscreensaver-command -lock && $logind suspend
|
||||
;;
|
||||
hibernate)
|
||||
xscreensaver-command -lock && $logind hibernate
|
||||
;;
|
||||
reboot)
|
||||
$logind reboot
|
||||
;;
|
||||
shutdown)
|
||||
$logind poweroff
|
||||
;;
|
||||
*)
|
||||
echo "== ! i3exit: missing or invalid argument ! =="
|
||||
echo "Try again with: lock | logout | switch_user | suspend | hibernate | reboot | shutdown"
|
||||
exit 2
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
23
dot_local/bin/executable_launch_polybar
Normal file
23
dot_local/bin/executable_launch_polybar
Normal file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env bash
|
||||
(
|
||||
flock 200
|
||||
|
||||
killall -q polybar
|
||||
|
||||
while pgrep -u $UID -x polybar > /dev/null; do sleep 0.5; done
|
||||
|
||||
outputs=$(xrandr --query | grep " connected" | cut -d" " -f1)
|
||||
tray_output=$(xrandr --query | grep " primary" | cut -d" " -f 1)
|
||||
|
||||
for m in $outputs; do
|
||||
export MONITOR=$m
|
||||
export TRAY_POSITION=none
|
||||
|
||||
if [[ $m == "$tray_output" ]]; then
|
||||
TRAY_POSITION=right
|
||||
fi
|
||||
|
||||
polybar --reload main </dev/null >"/var/tmp/polybar-$m.log" 2>&1 200>&- &
|
||||
disown
|
||||
done
|
||||
) 200>/var/tmp/polybar-launch.lock
|
22
dot_local/bin/executable_mailcount
Normal file
22
dot_local/bin/executable_mailcount
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
UNREAD_ONLY=true
|
||||
MAIL_DIR=~/.local/share/mail
|
||||
|
||||
mailcount=0
|
||||
|
||||
if [[ -d ${MAIL_DIR} ]]; then
|
||||
for dir in ${MAIL_DIR}/*/; do
|
||||
# get file count for the unread mailbox, add to count
|
||||
mailcount=$(( $( ls ${dir}INBOX/new | wc -l ) + $mailcount ))
|
||||
|
||||
# also add the rest of the inbox if var is set
|
||||
if !($UNREAD_ONLY); then
|
||||
mailcount=$(( $( ls ${dir}INBOX/cur | wc -l ) + $mailcount ))
|
||||
fi
|
||||
|
||||
done
|
||||
fi
|
||||
|
||||
echo ${mailcount}
|
||||
|
14
dot_local/bin/executable_mullvad-status
Normal file
14
dot_local/bin/executable_mullvad-status
Normal file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
while read LINE; do
|
||||
if echo "$LINE" | grep -q 'Connected'; then
|
||||
# get the relay (3rd word) | drop the wireguard/openvpn suffix | make it uppercase
|
||||
# just replace this with whatever style you like
|
||||
OUTPUT=$(echo $LINE | cut -d " " -f 3 | cut -d "-" -f 1 | tr '/a-z/' '/A-Z/')
|
||||
ICON=" "
|
||||
else
|
||||
ICON=" "
|
||||
fi
|
||||
|
||||
echo $ICON $OUTPUT
|
||||
done < <(mullvad status listen)
|
78
dot_local/bin/executable_powermenu
Normal file
78
dot_local/bin/executable_powermenu
Normal file
|
@ -0,0 +1,78 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
dir="~/.config/rofi"
|
||||
uptime=$(uptime -p | sed -e 's/up //g')
|
||||
|
||||
rofi_command="rofi -theme $dir/powermenu.rasi"
|
||||
|
||||
# Options
|
||||
lock=" Lock"
|
||||
suspend=" Sleep"
|
||||
logout=" Logout"
|
||||
reboot=" Restart"
|
||||
shutdown=" Shutdown"
|
||||
|
||||
# Confirmation
|
||||
confirm_exit() {
|
||||
rofi -dmenu\
|
||||
-i\
|
||||
-no-fixed-num-lines\
|
||||
-p "Are You Sure? : "\
|
||||
-theme $dir/confirm.rasi
|
||||
}
|
||||
|
||||
# Message
|
||||
msg() {
|
||||
rofi -theme "$dir/message.rasi" -e "Available Options - yes / y / no / n"
|
||||
}
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$lock\n$suspend\n$logout\n$reboot\n$shutdown"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "Uptime: $uptime" -dmenu -selected-row 0)"
|
||||
case $chosen in
|
||||
$shutdown)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
i3exit shutdown
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$reboot)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
i3exit reboot
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$lock)
|
||||
i3exit lock
|
||||
;;
|
||||
$suspend)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
i3exit suspend
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$logout)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
i3exit logout
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
19
dot_ssh/encrypted_config.tmpl.asc
Normal file
19
dot_ssh/encrypted_config.tmpl.asc
Normal file
|
@ -0,0 +1,19 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAwRGvDXppBb80wRL9kSYPq+4DDy/UBn0lDVmMexjs2VUw
|
||||
cGTlsNpmiNjd09XgQYQUr1bp2JyV8sCsfgk2eaySV+XSsVkUNzHbhx1kB5fZNnBg
|
||||
0ukBfrQmTiYQHllCNF6LbA+GYUM3Q22a37ZLxxMlHeT+sm3T/s+FiIlVofAjwQfa
|
||||
sTxXVVg7tpJIWv9+2WxQ+FbUi3VYWnUYeLqcsBbw99jSrcCGmrIebi92kajHISOK
|
||||
4a2tF5RS+3xPUNsopHRwhWAhFgIvIeNt90DFnujgQjtcR8pvF6iMOlBUMVBuHB2L
|
||||
/Sm+swVc8VAeMfJ7jmJIC1HYcl7AgQuHnDFbE2+Gk9q2amIKadSiNPpKFLJmk80e
|
||||
xtYckly2tNjWDCG0fRua0NO1A4flRpAz62dAScifvzNxGvgxiqFapNXLzHlcBWY/
|
||||
KnS1am2xXgneHHT3+/chuJ1BlaoJ5q6QsbyN4QYN9onCC4mV7vhcVVU48TTjPn+b
|
||||
HYmTY7Y7XZdzGDJGBTYrVHqx8FhcswOXHpSTFpYgKmR/ywZ3vYwoNlKGFWBaem7J
|
||||
VlrKRQ3L5WT/r14lNTWAfv9PpzNcXDZ1hCzDeEs2Zwm6ouuDclDg9qEDxz3lH9sl
|
||||
CEabocOt3om5Bzs2HkyJr96lmWwfPkR00fvb1vEPeidE5iCBZ5/E57PEr2ps1fUV
|
||||
poROi2YjAhKMujJTNNaR3fc6dofhZ8fRzMJt9EA1IIhhizUA+iX1VwQfZRlZKgE0
|
||||
GKEh1m01p+p5QW3GHfe03nB6GxoF8NOevhGbZlOxK+lU0k1X9qZB3TJ5HoihPTbx
|
||||
Y9gHAJfP6vULQz+B6pS/iSr955i/F3WRVUILGmYhDBEReDz89WI+v1HbNyU1Ud//
|
||||
wmHycqESQmxWEqDle2HU2A==
|
||||
=CjYQ
|
||||
-----END PGP MESSAGE-----
|
6
dot_urlview.tmpl
Normal file
6
dot_urlview.tmpl
Normal file
|
@ -0,0 +1,6 @@
|
|||
REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]
|
||||
{{ if eq .chezmoi.os "darwin" -}}
|
||||
COMMAND open -a "Firefox" %s
|
||||
{{ else }}
|
||||
COMMAND /usr/bin/firefox -new-tab %s
|
||||
{{- end -}}
|
7
dot_zprofile.tmpl
Normal file
7
dot_zprofile.tmpl
Normal file
|
@ -0,0 +1,7 @@
|
|||
export EDITOR=nvim
|
||||
export TERMINAL=wezterm
|
||||
{{ if eq .chezmoi.os "darwin" -}}
|
||||
# homebrew
|
||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
|
||||
{{- end -}}
|
56
dot_zshenv
Normal file
56
dot_zshenv
Normal file
|
@ -0,0 +1,56 @@
|
|||
### COMMON ###
|
||||
export EDITOR=nvim
|
||||
|
||||
# don't write a less history
|
||||
export LESSHISTFILE=-
|
||||
|
||||
# check if .local/bin is directory, if not create it
|
||||
if [ ! -d "$HOME/.local/bin" ]; then
|
||||
mkdir -p "$HOME/.local/bin"
|
||||
fi
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
if [ -d "/usr/local/sbin" ]; then
|
||||
export PATH="/usr/local/sbin:$PATH"
|
||||
fi
|
||||
|
||||
### LINUX ### - TODO: replace with chezmoi os check
|
||||
if [[ $(uname -s) == 'Linux' ]]; then
|
||||
BROWSER="$(which firefox)"
|
||||
export BROWSER
|
||||
fi
|
||||
|
||||
### MACOS ###
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
if [[ -x "$(command -v brew)" ]]; then
|
||||
export PATH="/opt/homebrew/sbin:$PATH"
|
||||
fi
|
||||
|
||||
### KUBERNETES ###
|
||||
# add to path if '.krew' exists or $KREW_ROOT is set
|
||||
if [ -d "$HOME/.krew" ] || [ -z "$KREW_ROOT" ]; then
|
||||
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
|
||||
fi
|
||||
export KUBE_EDITOR="$EDITOR"
|
||||
|
||||
### PYTHON ###
|
||||
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
|
||||
if [ -d "$HOME/.pyenv/bin" ]; then
|
||||
export PATH="$PATH:$HOME/.pyenv/bin"
|
||||
fi
|
||||
|
||||
### RUST ###
|
||||
if [ -f "$HOME/.cargo/env" ]; then
|
||||
. "$HOME/.cargo/env"
|
||||
fi
|
||||
export PATH="$PATH:$HOME/.cargo/bin"
|
||||
|
||||
### NODE ###
|
||||
export NVM_DIR="$HOME/.config/nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
# yarn
|
||||
export PATH="$PATH:$HOME/.yarn/bin"
|
||||
export PATH="/opt/homebrew/opt/libpq/bin:$PATH"
|
||||
|
||||
### GO ###
|
||||
export PATH="$PATH:$HOME/go/bin"
|
170
dot_zshrc
Normal file
170
dot_zshrc
Normal file
|
@ -0,0 +1,170 @@
|
|||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
# load starship
|
||||
eval "$(starship init zsh)"
|
||||
|
||||
### plugins via antigen {{{
|
||||
# load antigen
|
||||
source "$HOME/.antigen/antigen.zsh"
|
||||
|
||||
antigen use oh-my-zsh
|
||||
|
||||
antigen bundle colored-man-pages
|
||||
antigen bundle colorize
|
||||
antigen bundle docker-compose
|
||||
antigen bundle git
|
||||
antigen bundle gpg-agent
|
||||
antigen bundle kubectl
|
||||
|
||||
# omz's vi-mode doesn't vibe with starship
|
||||
antigen bundle jeffreytse/zsh-vi-mode
|
||||
|
||||
antigen bundle greymd/docker-zsh-completion
|
||||
antigen bundle zsh-users/zsh-autosuggestions
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||
|
||||
antigen apply
|
||||
|
||||
# }}}
|
||||
|
||||
### basics {{{
|
||||
|
||||
# history
|
||||
export HISTFILE="$HOME/.zhistory"
|
||||
export HISTSIZE=10000
|
||||
export SAVEHIST=10000
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt HIST_IGNORE_DUPS
|
||||
|
||||
# fuck if available
|
||||
[[ -x "$(command -v thefuck)" ]] && eval $(thefuck --alias)
|
||||
|
||||
# credit to locotay
|
||||
function bitch() {
|
||||
[ "$1" = "you" ] && [ "$2" = "better" ] && sudo "${@:3}"
|
||||
}
|
||||
|
||||
# }}}
|
||||
|
||||
### aliases & functions {{{
|
||||
## basics, from common to peculiar tweaks {{{
|
||||
# use exa+lsd to list directories, if available, falling back to ls aliases
|
||||
if [ -x "$(command -v lsd)" ] && [ -x "$(command -v exa)" ]; then
|
||||
# add a bit more space between the file icon & name
|
||||
export EXA_ICON_SPACING=1
|
||||
# lsd is the better drop-in replacement
|
||||
alias ls='lsd'
|
||||
# only exa can do this, atm
|
||||
alias l='exa --icons --group-directories-first'
|
||||
alias ll='exa --icons --group-directories-first --git -l'
|
||||
alias la='exa --icons --group-directories-first --git -la'
|
||||
# only lsd can do this, atm
|
||||
alias lt='lsd -l --total-size'
|
||||
alias lat='lsd -lA --total-size'
|
||||
else
|
||||
alias l='ls'
|
||||
alias ll='ls -l'
|
||||
alias la='ls -lA'
|
||||
fi
|
||||
|
||||
# use neovim as vim, if installed
|
||||
if [[ -x "$(command -v nvim)" ]]; then
|
||||
alias vim='nvim'
|
||||
# open vimwiki
|
||||
alias wiki='nvim -c VimwikiIndex'
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v newsboat)" ]]; then
|
||||
alias nb='newsboat -C ~/.config/newsboat/config -u ~/.config/newsboat/urls'
|
||||
fi
|
||||
|
||||
[[ -x "$(command -v nvim)" ]] && alias tt='taskwarrior-tui'
|
||||
|
||||
# switch between yubikeys for the same GPG key
|
||||
alias switch_yubikeys='gpg-connect-agent "scd serialno" "learn --force" /bye'
|
||||
|
||||
# list tty devices on macOS, useful for Arduino & other boards
|
||||
alias lstty='ls /dev | grep -E "^(tty\.|cu\.)" --color=never'
|
||||
#}}}
|
||||
|
||||
## OS-dependent tweaks {{{
|
||||
# manage yabai & ecosystem easier
|
||||
function twm() {
|
||||
case "$1" in
|
||||
"start")
|
||||
brew services start skhd
|
||||
brew services start yabai
|
||||
;;
|
||||
"stop")
|
||||
brew services stop skhd
|
||||
brew services stop yabai
|
||||
;;
|
||||
"restart")
|
||||
launchctl kickstart -k "gui/${UID}/homebrew.mxcl.skhd"
|
||||
launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: twm <start|restart|stop>"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function icat() {
|
||||
if [ "$TERM_PROGRAM" = "WezTerm" ]; then
|
||||
wezterm imgcat "$@"
|
||||
elif [ "$TERM" = "xterm-kitty" ]; then
|
||||
kitty +kitten imgcat "$@"
|
||||
else
|
||||
echo 'No image viewer defined for this terminal'
|
||||
fi
|
||||
}
|
||||
#}}}
|
||||
|
||||
## development {{{
|
||||
# use the combination of colordiff & diff-so-fancy
|
||||
if [ -x "$(command -v colordiff)" ] && [ -x "$(command -v diff-so-fancy)" ]; then
|
||||
function diff() {
|
||||
colordiff -N -u "$@" | diff-so-fancy
|
||||
}
|
||||
|
||||
function kdiff() {
|
||||
KUBECTL_EXTERNAL_DIFF="colordiff -N -u"
|
||||
kubectl diff "$@" | diff-so-fancy
|
||||
}
|
||||
fi
|
||||
# }}}
|
||||
|
||||
## chezmoi
|
||||
alias cma='chezmoi add'
|
||||
alias cmap='chezmoi apply'
|
||||
alias cmcd='cd $(chezmoi source-path)'
|
||||
alias cmd='chezmoi diff'
|
||||
alias cme='chezmoi edit'
|
||||
alias cmm='chezmoi merge'
|
||||
alias cmrm='chezmoi remove'
|
||||
alias cmst='chezmoi status'
|
||||
alias cmup='chezmoi update'
|
||||
|
||||
alias onefetch='onefetch --true-color=never'
|
||||
### }}}
|
||||
|
||||
### languages & frameworks {{{
|
||||
# python, my old friend
|
||||
if [ -x "$(command -v pyenv)" ]; then
|
||||
eval "$(pyenv init -)"
|
||||
fi
|
||||
|
||||
# }}}
|
||||
|
||||
### technical BS {{{
|
||||
# some bs seting the window title, apparently
|
||||
function set_win_title(){
|
||||
echo -ne "\033]0;$(basename "$PWD")\007"
|
||||
}
|
||||
|
||||
precmd_functions+=(set_win_title)
|
||||
# }}}
|
||||
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
16
encrypted_dot_mbsyncrc.asc
Normal file
16
encrypted_dot_mbsyncrc.asc
Normal file
|
@ -0,0 +1,16 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAScqMcrDn0VKl7IBjwUsE9R7MDLYN+Dsd+A3ChSFiKTww
|
||||
T2wwdWqjRpTtqRucbm5bOJ8374kudX01CgygjQuYVZv+dnvg9G4DA9w4a3dx0X6+
|
||||
0sEPAf6ckVZ/EfxNAdS1BXF0tZ6JpiqUN8nv2lHBDDCY7bk+SbPnDHT97n4e21M6
|
||||
QeTHt9aYlvvn3KOkQ40XH6Sp7YyaNNBi7w8aE8JhId9z7LVCkND8dYSCBE+k5qnM
|
||||
71LeWJY+c845COjuK917L9X6CgSfYLi5oe9u/CrF0P2Jdj65eBRqz+WSw9OUz9sR
|
||||
p5so4NhzXU7tUZAokDeRuuAiuaQjOH/Ye/YucqCioV1ATUaa3j8gb8M8lrO+0EJK
|
||||
4bxH8qdWlGZS4WTH97l/1CrpgVrt6OtW9jEZK4CddyuPS/uY1CPdrbyAMRugRw19
|
||||
Z/pGp0cNmNXk2iUa3QUrdnyRfv68sCv0wB+xrqgppU/90JNd2bCAb+RIWU8mtOHe
|
||||
CPXsWlEtY0VkhDto2o4LEJEq/TIrQBUerubSo1p/r10UBws/1NU3YcdhSTEYdy2b
|
||||
yUUKz4H9E4EK9AiHLtMQ4I15ojToivvb7rJDaGZQGjN75qev0u15qELLjhNLlAS/
|
||||
l5IF4UYIT3t3puZxmNQuH9GyfOVzbZGNZ+kjVSXEgArhhQZBi/5UHVGG09WEfAyr
|
||||
i+vhtZlxFu1vBmiK64stiIN0cmICH1Y4UyGZi5KCiXlYdw==
|
||||
=b25X
|
||||
-----END PGP MESSAGE-----
|
12
encrypted_dot_notmuch-config.asc
Normal file
12
encrypted_dot_notmuch-config.asc
Normal file
|
@ -0,0 +1,12 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAhC83Q146cdQ9FqgO9BrkXmh77m/0YZ+RdSZPnQKvQQ4w
|
||||
WCkoVukVe3T8BnoRAMGEBUYmy5Hd1CFUbKVPD+GCt8IslunaT0CO9ITyEPS4RZka
|
||||
0sBRAf+rSCDwtWHgxk0LRS+4WocvxTnoGlMjxUfI+ljRr9wNv2RfWDbMzFkSpZm2
|
||||
nFcpQOOsQBfKoSmXao0ZttbjpCnHvQZac57YAujpxvR/oa+fK73wedhh8PLCLTpq
|
||||
aJhwkB3X4NgPFLcZ5COF1Y+EbNQgrnIS5bP1u2TQskx7h0sMBnj5W7Yx+ei4nz1M
|
||||
3pp8jnIzWmol6MiEfkpQEYGYtsJoT+2aRETNF5MDphGcOTp+fmRz0XYDmw69/QJZ
|
||||
PjTFsyxUIdPEs/RZBGrR8TW8aHPpP5Bh7oMpA5Ewxdm07+UXKjg9EjSXLj8ubB0a
|
||||
xTjS/rIr9IRBZP9BkZV8+eBJcmF25o0vbt55MKwonnoY522t
|
||||
=0DgQ
|
||||
-----END PGP MESSAGE-----
|
9
private_dot_gnupg/encrypted_private_sshcontrol.asc
Normal file
9
private_dot_gnupg/encrypted_private_sshcontrol.asc
Normal file
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4Dt852JJsu9zQSAQdAinMDIj5T8qZNg5p8XNjDjZph3OZRUfSWd4vEYVQPIRUw
|
||||
4+qunbjT8S3d9LJHaTtPLgrc/Ky2If3IIGIIv5qiSqNG3Bebhh2SP7LUpO1au6ro
|
||||
0m0BbTx4S0oM6ShewCMo4EE5yNXlg3G6g4nRwN51jxuxjHpIj+jNTkIDGfb/iA5U
|
||||
ZCsF1461mdHdbfbwlshMaviawnSAs2Rbc0Jery+dQATIJhm+NdZbNiyudZwVCalW
|
||||
aE5pHWvZm8PE8psxy3VB
|
||||
=Imms
|
||||
-----END PGP MESSAGE-----
|
8
private_dot_gnupg/private_gpg-agent.conf.tmpl
Normal file
8
private_dot_gnupg/private_gpg-agent.conf.tmpl
Normal file
|
@ -0,0 +1,8 @@
|
|||
enable-ssh-support
|
||||
default-cache-ttl 60
|
||||
max-cache-ttl 120
|
||||
default-cache-ttl-ssh 60
|
||||
max-cache-ttl-ssh 120
|
||||
{{ if eq .chezmoi.os "darwin" }}
|
||||
pinentry-program /opt/homebrew/bin/pinentry-mac
|
||||
{{ end }}
|
2
private_dot_gnupg/private_gpg.conf
Normal file
2
private_dot_gnupg/private_gpg.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
no-emit-version
|
||||
use-agent
|
BIN
private_dot_password-store/private_ASF.gpg
Normal file
BIN
private_dot_password-store/private_ASF.gpg
Normal file
Binary file not shown.
3
private_dot_password-store/private_discord-bot.gpg
Normal file
3
private_dot_password-store/private_discord-bot.gpg
Normal file
|
@ -0,0 +1,3 @@
|
|||
„^·Ξv$›.χ4@Λl@”~ΣhgJ&ό’S0‡M6ΛqΞΜ<CE9E>Β.?²®„;0μι1PG/g΅ΎA<CE8E>‡Ψ†μAΫX
|
||||
eygμμΕΑ†Ν› 7<>΅γΈFy#›™Φβ€ό<E282AC>xό<>ϋ,«σΟς<CE9F>_—ΩU .ΑνΣ±¦Ch<43>° ¤p’£kΌγjσCτGίΔ›5LΥφΦ°Diώ¶<0B>Μig®4ά,Η@ρ&<26>²ρH
|
||||
Maή¤oΗϊJV‘wξ>ζZέ<5A><CEAD>σΏΨΰ*HΕΏ¨§/_B§MUΰ><3E>Ϊ
|
1
private_dot_password-store/private_dot_gpg-id
Normal file
1
private_dot_password-store/private_dot_gpg-id
Normal file
|
@ -0,0 +1 @@
|
|||
A476C39610E53A689A57BD0D0B89BC45007EE9CC
|
BIN
private_dot_password-store/private_git/private_personal.gpg
Normal file
BIN
private_dot_password-store/private_git/private_personal.gpg
Normal file
Binary file not shown.
BIN
private_dot_password-store/private_git/private_winston.gpg
Normal file
BIN
private_dot_password-store/private_git/private_winston.gpg
Normal file
Binary file not shown.
2
private_dot_password-store/private_git/private_work.gpg
Normal file
2
private_dot_password-store/private_git/private_work.gpg
Normal file
|
@ -0,0 +1,2 @@
|
|||
„^·Îv$›.÷4@y¤®5–ª#LðÄ"Ê{ Ò_Þõ™WÎJ㑢Ǝ\s0}µ”ô²NDjÞÄN¦qú‡¦p’غÑXkDø—抺-ˆ&N8h¤wï¦SÒdrëóúmyÞ€u3èF2ÃÒ’.8yÏÐ\l{ðÓ<>Óeš9b0A»Ú‘³ÿ×o› ]Çþ£¢?éð€Á´~EêN\—åÔ~ÞØý.ŠOüáÚë „¢qs¥[z
|
||||
é
|
|
@ -0,0 +1,3 @@
|
|||
„^·Îv$›.÷4@-Ý3mU<6D>sHwËâÒ;1Ê=äfi«íµž±Mv0û¡Ì™ãœ‡_–‚)¼srXw³r>RŒØ¢cG×T™0t©`_Z‰zS:/š®Òr<18>çALž[.ÆÆ×f$P&ÖÅÔ§VŠgÀ}sš«1 µË K,a°„L<1A>T<02>îp,Û0Ð a8 ëj3Y_ð˜ë¯áá®(#JV†Ñ
|
||||
`çAjÄG×v*ÕÀ§©ºC,mÇ §;Å!Í
|
||||
†ù
|
BIN
private_dot_password-store/private_mail/private_personal.gpg
Normal file
BIN
private_dot_password-store/private_mail/private_personal.gpg
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue