forked from extern/nix-config
meta: Revert recent dotfile removals
Although removing these dotfiles gave the repository a clean feeling, it made it significantly harder to resume using a certain window manager or other tool at any time. Instead of removing dotfiles entirely, it's enough to simply not install the programs you don't want to use, or even install them but not open them.
This commit is contained in:
parent
15f6d80a52
commit
6f75925146
8
dunst/.config/dunst/wal.sh
Executable file
8
dunst/.config/dunst/wal.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Symlink dunst config
|
||||
ln -sf ~/.cache/wal/dunstrc ~/.config/dunst/dunstrc
|
||||
|
||||
# Restart dunst with the new color scheme
|
||||
pkill dunst
|
||||
dunst &
|
62
dunst/.config/wal/templates/dunstrc
Normal file
62
dunst/.config/wal/templates/dunstrc
Normal file
@ -0,0 +1,62 @@
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2018 Donovan Glover
|
||||
|
||||
# NOTE: This file is automatically generated by pywal. Do not edit it by hand.
|
||||
|
||||
[global]
|
||||
# Make the width 3740 (3840 - 100), have 50 left margin and 95 above (for HiDPI, below this is normal DPI)
|
||||
# geometry = "3740x5-50+95"
|
||||
geometry = "1870x5-25+45"
|
||||
|
||||
# Increase width of dunst notifications
|
||||
width = 350
|
||||
|
||||
# Show multiple notifications in the same box
|
||||
separator_height = 0
|
||||
|
||||
# Add vertical padding to the inside of the notification
|
||||
padding = 24
|
||||
|
||||
# Add horizontal padding for when the text gets long enough
|
||||
horizontal_padding = 24
|
||||
|
||||
# The frame color and width of the notification
|
||||
frame_color = "{color8}"
|
||||
frame_width = 3
|
||||
|
||||
# How long a user needs to be idle for sticky notifications
|
||||
idle_threshold = 120
|
||||
|
||||
# Font and typography settings
|
||||
font = Fira Mono 12
|
||||
alignment = center
|
||||
word_wrap = yes
|
||||
|
||||
# Transparency
|
||||
transparency = 5
|
||||
|
||||
# Format for how notifications will be displayed
|
||||
# Usage: `notify-send 'Title' 'Summary'`
|
||||
format = "<b>%s</b>: %b"
|
||||
|
||||
# Allow some HTML tags like <i> and <u> in notifications
|
||||
markup = full
|
||||
|
||||
# Increase the size of cover notifications
|
||||
min_icon_size = 128
|
||||
max_icon_size = 128
|
||||
|
||||
# Set the background and foreground (text) color for all notifications
|
||||
[urgency_low]
|
||||
background = "{background}"
|
||||
foreground = "{foreground}"
|
||||
|
||||
[urgency_normal]
|
||||
background = "{background}"
|
||||
foreground = "{foreground}"
|
||||
|
||||
[urgency_critical]
|
||||
background = "{background}"
|
||||
foreground = "{foreground}"
|
||||
|
||||
# vim:ft=cfg
|
16
dunst/README.md
Normal file
16
dunst/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# dunst
|
||||
|
||||
[dunst][dunst] is used to display notifications on your desktop.
|
||||
|
||||
## Use Cases
|
||||
|
||||
dunst can be used to:
|
||||
|
||||
- Display messages sent with `notify-send`
|
||||
- Strategically add notifications to your rice screenshots
|
||||
|
||||
You should not use dunst if:
|
||||
|
||||
- Your desktop environment already includes a notification daemon
|
||||
|
||||
[dunst]: https://github.com/dunst-project/dunst
|
25
fcitx/.config/fcitx5/conf/classicui.conf
Normal file
25
fcitx/.config/fcitx5/conf/classicui.conf
Normal file
@ -0,0 +1,25 @@
|
||||
# Vertical Candidate List
|
||||
Vertical Candidate List=False
|
||||
# Use Per Screen DPI
|
||||
PerScreenDPI=True
|
||||
# Use mouse wheel to go to prev or next page
|
||||
WheelForPaging=True
|
||||
# Font
|
||||
Font="Noto Sans CJK JP 11"
|
||||
# Menu Font
|
||||
MenuFont="Noto Sans CJK JP 11"
|
||||
# Tray Font
|
||||
TrayFont="Noto Sans CJK JP Medium 11"
|
||||
# Tray Label Outline Color
|
||||
TrayOutlineColor=#000000
|
||||
# Tray Label Text Color
|
||||
TrayTextColor=#ffffff
|
||||
# Prefer Text Icon
|
||||
PreferTextIcon=False
|
||||
# Show Layout Name In Icon
|
||||
ShowLayoutNameInIcon=True
|
||||
# Use input method language to display text
|
||||
UseInputMethodLangaugeToDisplayText=True
|
||||
# Theme
|
||||
Theme=default
|
||||
|
7
fcitx/.config/fcitx5/conf/clipboard.conf
Normal file
7
fcitx/.config/fcitx5/conf/clipboard.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# Trigger Key
|
||||
TriggerKey=
|
||||
# Paste Primary
|
||||
PastePrimaryKey=
|
||||
# Number of entries
|
||||
Number of entries=5
|
||||
|
11
fcitx/.config/fcitx5/conf/mozc.conf
Normal file
11
fcitx/.config/fcitx5/conf/mozc.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# Initial Mode
|
||||
InitialMode=Hiragana
|
||||
# Vertical candidate list
|
||||
Vertical=True
|
||||
# Expand Usage (Requires vertical candidate list)
|
||||
ExpandMode="On Focus"
|
||||
# Fix embedded preedit cursor at the beginning of the preedit
|
||||
PreeditCursorPositionAtBeginning=False
|
||||
# Hotkey to expand usage
|
||||
ExpandKey=Control+Alt+H
|
||||
|
3
fcitx/.config/fcitx5/conf/notifications.conf
Normal file
3
fcitx/.config/fcitx5/conf/notifications.conf
Normal file
@ -0,0 +1,3 @@
|
||||
# Hidden Notifications
|
||||
HiddenNotifications=
|
||||
|
3
fcitx/.config/fcitx5/conf/unicode.conf
Normal file
3
fcitx/.config/fcitx5/conf/unicode.conf
Normal file
@ -0,0 +1,3 @@
|
||||
# Trigger Key
|
||||
TriggerKey=
|
||||
|
66
fcitx/.config/fcitx5/config
Normal file
66
fcitx/.config/fcitx5/config
Normal file
@ -0,0 +1,66 @@
|
||||
[Hotkey]
|
||||
# Enumerate when press trigger key repeatedly
|
||||
EnumerateWithTriggerKeys=True
|
||||
# Temporally switch between first and current Input Method
|
||||
AltTriggerKeys=
|
||||
# Enumerate Input Method Forward
|
||||
EnumerateForwardKeys=
|
||||
# Enumerate Input Method Backward
|
||||
EnumerateBackwardKeys=
|
||||
# Skip first input method while enumerating
|
||||
EnumerateSkipFirst=False
|
||||
# Enumerate Input Method Group Forward
|
||||
EnumerateGroupForwardKeys=
|
||||
# Enumerate Input Method Group Backward
|
||||
EnumerateGroupBackwardKeys=
|
||||
# Activate Input Method
|
||||
ActivateKeys=
|
||||
# Deactivate Input Method
|
||||
DeactivateKeys=
|
||||
|
||||
[Hotkey/TriggerKeys]
|
||||
0=Super+bracketleft
|
||||
|
||||
[Hotkey/PrevPage]
|
||||
0=Up
|
||||
|
||||
[Hotkey/NextPage]
|
||||
0=Down
|
||||
|
||||
[Hotkey/PrevCandidate]
|
||||
0=Shift+Tab
|
||||
|
||||
[Hotkey/NextCandidate]
|
||||
0=Tab
|
||||
|
||||
[Hotkey/TogglePreedit]
|
||||
0=Control+Alt+P
|
||||
|
||||
[Behavior]
|
||||
# Active By Default
|
||||
ActiveByDefault=False
|
||||
# Share Input State
|
||||
ShareInputState=No
|
||||
# Show preedit in application
|
||||
PreeditEnabledByDefault=True
|
||||
# Show Input Method Information when switch input method
|
||||
ShowInputMethodInformation=True
|
||||
# Show Input Method Information when changing focus
|
||||
showInputMethodInformationWhenFocusIn=False
|
||||
# Show compact input method information
|
||||
CompactInputMethodInformation=True
|
||||
# Show first input method information
|
||||
ShowFirstInputMethodInformation=True
|
||||
# Default page size
|
||||
DefaultPageSize=5
|
||||
# Override Xkb Option
|
||||
OverrideXkbOption=False
|
||||
# Custom Xkb Option
|
||||
CustomXkbOption=
|
||||
# Force Enabled Addons
|
||||
EnabledAddons=
|
||||
# Force Disabled Addons
|
||||
DisabledAddons=
|
||||
# Preload input method to be used by default
|
||||
PreloadInputMethod=True
|
||||
|
23
fcitx/.config/fcitx5/profile
Normal file
23
fcitx/.config/fcitx5/profile
Normal file
@ -0,0 +1,23 @@
|
||||
[Groups/0]
|
||||
# Group Name
|
||||
Name="Group 1"
|
||||
# Layout
|
||||
Default Layout=us
|
||||
# Default Input Method
|
||||
DefaultIM=mozc
|
||||
|
||||
[Groups/0/Items/0]
|
||||
# Name
|
||||
Name=keyboard-us
|
||||
# Layout
|
||||
Layout=
|
||||
|
||||
[Groups/0/Items/1]
|
||||
# Name
|
||||
Name=mozc
|
||||
# Layout
|
||||
Layout=
|
||||
|
||||
[GroupOrder]
|
||||
0="Group 1"
|
||||
|
20
fcitx/README.md
Normal file
20
fcitx/README.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Fcitx
|
||||
|
||||
[Fcitx(5)][fcitx] is an input method framework.
|
||||
|
||||
## Use Cases
|
||||
|
||||
Fcitx can be used to:
|
||||
|
||||
- Type Japanese with [mozc][mozc] on both Xorg and Wayland
|
||||
- Have a working [IME][ime] in the kitty terminal
|
||||
- Have a working IME for Anki and similar applications
|
||||
|
||||
You should not use Fcitx if:
|
||||
|
||||
- You don't need to type in another language like Japanese
|
||||
- You're only using GNOME (ibus + anthy works well there)
|
||||
|
||||
[fcitx]: https://github.com/fcitx/fcitx5
|
||||
[mozc]: https://wiki.archlinux.org/title/Mozc
|
||||
[ime]: https://wiki.archlinux.org/title/Input_method
|
99
feh/.config/feh/keys
Normal file
99
feh/.config/feh/keys
Normal file
@ -0,0 +1,99 @@
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2017-2018 Donovan Glover
|
||||
|
||||
# Remove the default keybindings
|
||||
toggle_actions
|
||||
toggle_aliasing
|
||||
toggle_caption
|
||||
toggle_filenames
|
||||
toggle_exif
|
||||
save_filelist
|
||||
toggle_fixed_geometry
|
||||
toggle_pause
|
||||
toggle_info
|
||||
toggle_keep_vp
|
||||
toggle_menu
|
||||
next_img
|
||||
toggle_pointer
|
||||
prev_img
|
||||
quit
|
||||
reload_image
|
||||
save_image
|
||||
toggle_fullscreen
|
||||
size_to_image
|
||||
close
|
||||
jump_random
|
||||
prev_dir
|
||||
next_dir
|
||||
orient_3
|
||||
orient_1
|
||||
|
||||
# Remove the default editing functionality
|
||||
flip
|
||||
mirror
|
||||
action_0
|
||||
action_1
|
||||
action_2
|
||||
action_3
|
||||
action_4
|
||||
action_5
|
||||
action_6
|
||||
action_7
|
||||
action_8
|
||||
action_9
|
||||
jump_first
|
||||
jump_last
|
||||
jump_fwd
|
||||
jump_back
|
||||
reload_plus
|
||||
reload_minus
|
||||
remove
|
||||
delete
|
||||
scroll_left
|
||||
scroll_right
|
||||
scroll_up
|
||||
scroll_down
|
||||
scroll_left_page
|
||||
scroll_right_page
|
||||
scroll_up_page
|
||||
scroll_down_page
|
||||
render
|
||||
zoom_in
|
||||
zoom_out
|
||||
zoom_default
|
||||
zoom_fit
|
||||
zoom_fill
|
||||
|
||||
# Remove the menu stuff
|
||||
menu_close
|
||||
menu_up
|
||||
menu_down
|
||||
menu_parent
|
||||
menu_child
|
||||
menu_select
|
||||
|
||||
# Add our custom keybindings
|
||||
# Note that k goes right (next) and j goes left (prev)
|
||||
toggle_fullscreen f
|
||||
next_img k Right
|
||||
prev_img j Left
|
||||
toggle_filenames d
|
||||
toggle_fixed_geometry g
|
||||
toggle_pause h
|
||||
quit q
|
||||
size_to_image w
|
||||
jump_random z
|
||||
scroll_left b
|
||||
scroll_right n
|
||||
scroll_up u Up
|
||||
scroll_down d Down
|
||||
zoom_in h
|
||||
zoom_out l
|
||||
zoom_default o
|
||||
zoom_fill p
|
||||
toggle_pointer a
|
||||
jump_first J
|
||||
jump_last K
|
||||
jump_fwd H
|
||||
jump_back L
|
||||
toggle_auto_zoom m
|
43
feh/.config/feh/tile.sh
Executable file
43
feh/.config/feh/tile.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
|
||||
# End the script if an error occurs.
|
||||
set -e
|
||||
|
||||
# Change the working directory to a cache directory.
|
||||
mkdir -p "$HOME/.cache/feh"
|
||||
cd "$HOME/.cache/feh"
|
||||
|
||||
# If $1 is not defined, raise an error.
|
||||
if [ -z "$1" ]; then
|
||||
echo 'error: No color specified.'
|
||||
echo 'usage: ./path/to/tile.sh <color> where color is hexadecimal'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If $1 contains something other than 0-9 and A-F, raise an error.
|
||||
if [[ -n "${1//[0-9A-F]/}" ]]; then
|
||||
echo 'error: Invalid color specified. Colors must use 0-9 and A-F only.'
|
||||
echo ' Colors should not use a-f since file names are case sensitive.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If $1 is not exactly six characters long, raise an error.
|
||||
if ! [ "${#1}" -eq 6 ]; then
|
||||
echo 'error: Invalid color specified. Colors must be of length 6.'
|
||||
echo ' This is for the convert function, and is used to help'
|
||||
echo ' prevent duplicate colors.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If the color doesn't exist yet, make it.
|
||||
if ! test -e "$1.png"; then
|
||||
echo 'status: Color file does not exist yet. Making it...'
|
||||
convert -size 1x1 "xc:#$1" "$1.png"
|
||||
fi
|
||||
|
||||
# Finally, set the specified color as the background.
|
||||
echo 'status: Setting the desktop background as the specified color...'
|
||||
feh --no-fehbg --bg-tile "$1.png"
|
||||
|
||||
# We're done here.
|
||||
echo 'status: Successfully changed the background to the color specified!'
|
17
feh/README.md
Normal file
17
feh/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
# feh
|
||||
|
||||
[feh][feh] is an image viewer with no GUI. It can also change the desktop background.
|
||||
|
||||
## Use Cases
|
||||
|
||||
feh can be used to:
|
||||
|
||||
- Quickly view and browse through images without loading a GUI
|
||||
- Change your desktop background if not using a desktop environment
|
||||
- Strategically place GUI-less images in your rice screenshots
|
||||
|
||||
You should not use feh if:
|
||||
|
||||
- You are using a desktop environment with an image viewer
|
||||
|
||||
[feh]: https://github.com/derf/feh
|
11
gtk/.config/gtk-3.0/settings.ini
Normal file
11
gtk/.config/gtk-3.0/settings.ini
Normal file
@ -0,0 +1,11 @@
|
||||
[Settings]
|
||||
gtk-cursor-theme-name=phinger-cursors
|
||||
gtk-decoration-layout=menu:
|
||||
gtk-font-name=Noto Sans CJK JP 11
|
||||
gtk-icon-theme-name=flattrcolor-dark
|
||||
gtk-theme-name=FlatColor
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintfull
|
||||
gtk-xft-rgba=rgb
|
||||
gtk-recent-files-enabled=false
|
18
gtk/README.md
Normal file
18
gtk/README.md
Normal file
@ -0,0 +1,18 @@
|
||||
# gtk-settings
|
||||
|
||||
[GTK][gtk] is the widget toolkit used by Firefox, Electron, and many (if not all) GNOME applications.
|
||||
|
||||
GTK's `settings.ini` only affects window managers and not the GNOME desktop environment. This is because GNOME manages user preferences with [`dconf` through `gsettings`][gnome].
|
||||
|
||||
## Use Cases
|
||||
|
||||
gtk-settings can be used to:
|
||||
|
||||
- Control the appearance of GTK applications under non-GNOME environments
|
||||
|
||||
You do not need to use gtk-settings if:
|
||||
|
||||
- You are using the GNOME desktop environment
|
||||
|
||||
[gtk]: https://wiki.archlinux.org/index.php/GTK+
|
||||
[gnome]: https://wiki.archlinux.org/index.php/GNOME#Configuration
|
26
librewolf/.librewolf/librewolf.overrides.cfg
Normal file
26
librewolf/.librewolf/librewolf.overrides.cfg
Normal file
@ -0,0 +1,26 @@
|
||||
// Enable WebGL
|
||||
defaultPref("webgl.disabled", false);
|
||||
|
||||
// Can be safely disabled unless on Linux
|
||||
defaultPref("media.peerconnection.ice.no_host", false);
|
||||
|
||||
// Disable middle click paste
|
||||
defaultPref("middlemouse.paste", false);
|
||||
|
||||
// Use real timezone
|
||||
defaultPref("privacy.resistFingerprinting", false);
|
||||
|
||||
// Soft-fail OCSP
|
||||
defaultPref("security.OCSP.require", false);
|
||||
|
||||
// Save to downloads by default
|
||||
defaultPref("browser.download.useDownloadDir", true);
|
||||
|
||||
// Enable autoplay for muted media (default)
|
||||
defaultPref("media.autoplay.default", 1);
|
||||
|
||||
// Autoplay when interacting with the website (default)
|
||||
defaultPref("media.autoplay.blocking_policy", 0);
|
||||
|
||||
// Fix bspwm and other window managers automatically pressing back on right click
|
||||
defaultPref("ui.context_menus.after_mouseup", true);
|
15
librewolf/README.md
Normal file
15
librewolf/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# librewolf
|
||||
|
||||
[librewolf][librewolf] is a firefox fork focused on privacy, security, and freedom.
|
||||
|
||||
## Use Cases
|
||||
|
||||
librewolf can be used to:
|
||||
|
||||
- Use Firefox without worrying about changing the defaults.
|
||||
|
||||
You should not use librewolf if:
|
||||
|
||||
- You don't mind changing settings in Firefox.
|
||||
|
||||
[librewolf]: https://librewolf.net/
|
6
neofetch/.config/neofetch/config.conf
Normal file
6
neofetch/.config/neofetch/config.conf
Normal file
@ -0,0 +1,6 @@
|
||||
gtk2="off"
|
||||
image_backend="kitty"
|
||||
speed_shorthand="on"
|
||||
cpu_brand="off"
|
||||
|
||||
# vim:ft=conf
|
15
neofetch/README.md
Normal file
15
neofetch/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# neofetch
|
||||
|
||||
[neofetch][neofetch] is the standard information tool.
|
||||
|
||||
## Use Cases
|
||||
|
||||
neofetch can be used to:
|
||||
|
||||
- Display system information in an elegant way, even through a tty
|
||||
|
||||
You should not use neofetch if:
|
||||
|
||||
- You should use neofetch.
|
||||
|
||||
[neofetch]: https://github.com/dylanaraps/neofetch
|
70
picom/.config/picom.conf
Normal file
70
picom/.config/picom.conf
Normal file
@ -0,0 +1,70 @@
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2017-2018 Donovan Glover
|
||||
|
||||
# Fix screen tearing
|
||||
backend = "glx"
|
||||
vsync = true
|
||||
|
||||
# Enable shadows (very important, as this makes everything look really nice)
|
||||
shadow = true
|
||||
|
||||
# Disable shadow on docks like polybar
|
||||
no-dock-shadow = true
|
||||
|
||||
# Disable shadow on hacksaw
|
||||
shadow-exclude = [
|
||||
"name = 'hacksaw'"
|
||||
]
|
||||
|
||||
# Make some applications translucent.
|
||||
# An easy way to get the class name of a window is with the following:
|
||||
# sleep 5; xdotool getwindowclassname (xdotool getactivewindow)
|
||||
opacity-rule = [
|
||||
"90:class_g = 'Polybar'",
|
||||
"90:class_g = 'Tint2'",
|
||||
"90:class_g = 'Thunar'",
|
||||
"90:class_g = 'code-oss'",
|
||||
"99:class_g = 'Org.gnome.Nautilus'"
|
||||
]
|
||||
|
||||
# Don't fade in polybar when showing it
|
||||
fade-exclude = [
|
||||
"class_g = 'Polybar'"
|
||||
]
|
||||
|
||||
# Disable shadow for drag-and-drop functionality
|
||||
wintypes: {
|
||||
dnd = {
|
||||
shadow = false
|
||||
}
|
||||
}
|
||||
|
||||
# Fade windows when you open and close them, as well as change workspaces
|
||||
fading = true
|
||||
|
||||
# Shadow settings
|
||||
shadow-radius = 8
|
||||
shadow-opacity = 0.25
|
||||
|
||||
# Shadow offset (-10 for HiDPI, -5 otherwise)
|
||||
shadow-offset-x = -5
|
||||
shadow-offset-y = -5
|
||||
|
||||
# Fade settings
|
||||
fade-in-step = 0.08
|
||||
fade-out-step = 0.09
|
||||
fade-delta = 10
|
||||
|
||||
# Add transparency to bspwm borders
|
||||
#frame-opacity = 0.5
|
||||
|
||||
# Fix flickering issue by drawing whole screen every time
|
||||
# See: https://github.com/yshui/picom/issues/578
|
||||
use-damage = false
|
||||
|
||||
blur: {
|
||||
method = "dual_kawase";
|
||||
strength = 7;
|
||||
}
|
||||
|
||||
# vim:ft=dosini
|
18
picom/README.md
Normal file
18
picom/README.md
Normal file
@ -0,0 +1,18 @@
|
||||
# picom
|
||||
|
||||
[picom][picom] is a desktop compositor for X11.
|
||||
|
||||
## Use Cases
|
||||
|
||||
picom can be used to:
|
||||
|
||||
- Reduce screen tear in certain environments
|
||||
- Add elementary animations such as fading to your desktop
|
||||
- Add shadows to your desktop
|
||||
|
||||
You should not use picom if:
|
||||
|
||||
- Your window manager or desktop environment already has a compositor
|
||||
- You are not using X11
|
||||
|
||||
[picom]: https://github.com/yshui/picom
|
176
qutebrowser/.config/qutebrowser/config.py
Normal file
176
qutebrowser/.config/qutebrowser/config.py
Normal file
@ -0,0 +1,176 @@
|
||||
import pywalQute.draw
|
||||
import time
|
||||
|
||||
# Don't use auto-saved settings
|
||||
config.load_autoconfig(False)
|
||||
|
||||
# Mute tabs by default
|
||||
from qutebrowser.mainwindow import tabwidget
|
||||
tabwidget.TabWidget.MUTE_STRING = ""
|
||||
tabwidget.TabWidget.AUDIBLE_STRING = "[A]"
|
||||
|
||||
# Make color scheme match pywal
|
||||
pywalQute.draw.color(c, {
|
||||
'spacing': {
|
||||
'vertical': 0,
|
||||
'horizontal': 0
|
||||
}
|
||||
})
|
||||
|
||||
# Don't close while browsing / downloading
|
||||
c.confirm_quit = ['multiple-tabs', 'downloads']
|
||||
|
||||
# Restore previous tabs
|
||||
c.session.lazy_restore = True
|
||||
|
||||
# Use ranger as the file selector
|
||||
c.fileselect.handler = 'external'
|
||||
c.fileselect.folder.command = ['kitty', '-e', 'ranger', '--choosedir={}']
|
||||
c.fileselect.multiple_files.command = ['kitty', '-e', 'ranger', '--choosefiles={}']
|
||||
c.fileselect.single_file.command = ['kitty', '-e', 'ranger', '--choosefile={}']
|
||||
|
||||
# Better context menu colors
|
||||
c.colors.contextmenu.disabled.fg = '#808080'
|
||||
c.colors.contextmenu.menu.bg = '#353535'
|
||||
c.colors.contextmenu.menu.fg = '#ffffff'
|
||||
c.colors.contextmenu.selected.bg = '#909090'
|
||||
|
||||
# Use spellcheck
|
||||
c.spellcheck.languages = ["en-US"]
|
||||
|
||||
# Chromium flags
|
||||
c.qt.args = ["disable-backing-store-limit", "enable-accelerated-video-decode", "disable-gpu-driver-bug-workarounds"]
|
||||
c.qt.chromium.low_end_device_mode = 'never'
|
||||
|
||||
# Make new tab position more sane
|
||||
c.tabs.new_position.unrelated = 'next'
|
||||
|
||||
# Download settings
|
||||
c.downloads.location.directory = "$HOME/Downloads"
|
||||
c.downloads.location.prompt = False
|
||||
c.downloads.position = "bottom"
|
||||
c.downloads.remove_finished = 5000
|
||||
|
||||
# Only show tabs when multiple are open
|
||||
c.tabs.show = "multiple"
|
||||
|
||||
# Don't switch tabs with mouse
|
||||
c.tabs.mousewheel_switching = False
|
||||
|
||||
# Edit text with neovim
|
||||
c.editor.command = ['kitty', '-e', 'nvim', '{}']
|
||||
|
||||
# Use J/K for prev/next
|
||||
config.bind('J', 'tab-prev')
|
||||
config.bind('K', 'tab-next')
|
||||
|
||||
# Use F12 for devtools
|
||||
config.bind('<F12>', 'devtools')
|
||||
|
||||
# Use zb to delete bookmarks
|
||||
config.bind('zb', 'bookmark-del')
|
||||
|
||||
# Increase the default scroll offset of j/k
|
||||
# NOTE: Unfortunately this breaks websites that use their own keybinds for j/k/etc
|
||||
# config.bind('j', 'run-with-count 5 scroll down')
|
||||
# config.bind('k', 'run-with-count 5 scroll up')
|
||||
|
||||
# NOTE: Use with smooth smooth scrolling enabled to scroll smoothly
|
||||
# config.bind('d', 'run-with-count 12 scroll down')
|
||||
# config.bind('u', 'run-with-count 12 scroll up')
|
||||
|
||||
# Use d/u to scroll down/up
|
||||
config.bind('d', 'scroll-page 0 0.5')
|
||||
config.bind('u', 'scroll-page 0 -0.5')
|
||||
config.bind('D', 'scroll-page 0 0.5')
|
||||
config.bind('U', 'scroll-page 0 -0.5')
|
||||
|
||||
# Use alt+left/right to go back/forward
|
||||
config.bind('<Alt+Left>', 'back')
|
||||
config.bind('<Alt+Right>', 'forward')
|
||||
|
||||
# Use x to close tabs and X to undo
|
||||
config.bind('x', 'tab-close')
|
||||
config.bind('X', 'undo')
|
||||
|
||||
# Toggle tab visibility for more screen space
|
||||
config.bind('st', 'config-cycle tabs.show multiple switching')
|
||||
|
||||
# Easily change the position of tabs
|
||||
config.bind('sTh', 'set tabs.position left')
|
||||
config.bind('sTj', 'set tabs.position bottom')
|
||||
config.bind('sTk', 'set tabs.position top')
|
||||
config.bind('sTl', 'set tabs.position right')
|
||||
|
||||
# Don't paste something by accident
|
||||
config.unbind('pp', mode='normal')
|
||||
config.unbind('pP', mode='normal')
|
||||
config.unbind('Pp', mode='normal')
|
||||
config.unbind('PP', mode='normal')
|
||||
config.unbind('wp', mode='normal')
|
||||
config.unbind('wP', mode='normal')
|
||||
|
||||
# Easily enter account information
|
||||
# NOTE: I re-evaluated pass when I was focusing on a terminal-centric workflow.
|
||||
config.bind('zl', 'spawn --userscript qute-pass')
|
||||
config.bind('zpl', 'spawn --userscript qute-pass --password-only')
|
||||
config.bind('zol', 'spawn --userscript qute-pass --otp-only')
|
||||
|
||||
# Support previous/next tab with traditional keybinds
|
||||
config.bind('<Ctrl+Shift+Tab>', 'tab-prev')
|
||||
config.bind('<Ctrl+Tab>', 'tab-next')
|
||||
|
||||
# Hide the status bar except under exceptional circumstances
|
||||
# NOTE: This broke more things than not, which is why I ultimately decided
|
||||
# to always use the status bar. More information can be found in the
|
||||
# following discussion: https://github.com/qutebrowser/qutebrowser/issues/2236
|
||||
# config.bind('o', 'set statusbar.show always;; set-cmd-text -s :open')
|
||||
# config.bind('O', 'set statusbar.show always;; set-cmd-text -s :open -t')
|
||||
# config.bind('T', 'set statusbar.show always;; set-cmd-text -sr :tab-focus')
|
||||
# config.bind(':', 'set statusbar.show always;; set-cmd-text :')
|
||||
# config.bind('/', 'set statusbar.show always;; set-cmd-text /')
|
||||
# config.bind('<Escape>', 'mode-enter normal;; set statusbar.show in-mode', mode='command')
|
||||
# config.bind('<Return>', 'command-accept;; set statusbar.show in-mode', mode='command')
|
||||
|
||||
# Easily start a new temporary container
|
||||
config.bind(';s', 'hint links spawn ~/.local/bin/tmp {hint-url}')
|
||||
|
||||
# Open the current tab / selected link in mpv
|
||||
config.bind('zM', 'spawn mpv --force-window=immediate {url}')
|
||||
config.bind('zm', 'hint links spawn mpv --force-window=immediate {hint-url}')
|
||||
|
||||
# Automatically mute tabs
|
||||
c.content.mute = True
|
||||
|
||||
# Use proxy websites for popular services
|
||||
config.bind('zu', 'hint links spawn -u untrack-url -O {hint-url}')
|
||||
|
||||
# Enable expected permissions to avoid websites asking every time
|
||||
c.content.persistent_storage = True
|
||||
c.content.notifications.enabled = True
|
||||
c.content.register_protocol_handler = True
|
||||
|
||||
# Hide the window title bar on GNOME
|
||||
# NOTE: This is no longer necessary since GNOME has an extension called
|
||||
# pixel-saver that # automatically handles this for us, and without
|
||||
# the downsides of not having a window bar.
|
||||
# c.window.hide_decoration = True
|
||||
|
||||
# Close qutebrowser when there are no tabs left
|
||||
c.tabs.last_close = "close"
|
||||
|
||||
# Don't automatically enter/leave insert mode
|
||||
# NOTE: This was originally done to prevent insert mode from prematurely exiting
|
||||
# in certain # cases (such as mouse usage), although keeping auto functionality
|
||||
# seems to be more useful # long-term.
|
||||
c.input.insert_mode.auto_enter = False
|
||||
c.input.insert_mode.auto_leave = False
|
||||
|
||||
# Prioritize Japanese content (en-US is necessary to avoid breaking things)
|
||||
c.content.headers.accept_language = 'ja-JP,en-US'
|
||||
|
||||
# NOTE: Yomichan is still the most efficient pop-up dictionary; I only include
|
||||
# this Yomichad implementation for historical purposes.
|
||||
for mode in ["normal", "caret"]:
|
||||
config.bind('gs', 'spawn --userscript yomichad', mode=mode)
|
||||
config.bind('gS', 'spawn --userscript yomichad --prefix-search', mode=mode)
|
15
qutebrowser/README.md
Normal file
15
qutebrowser/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# qutebrowser
|
||||
|
||||
[qutebrowser][qutebrowser] is a vim-like web browser based on chromium.
|
||||
|
||||
## Use Cases
|
||||
|
||||
qutebrowser can be used to:
|
||||
|
||||
- Browse the web with familiar vim-like keybindings
|
||||
|
||||
You should not use qutebrowser if:
|
||||
|
||||
- You want to take advantage of existing browser extensions
|
||||
|
||||
[qutebrowser]: https://qutebrowser.org/
|
25
rofi/.config/rofi/config.rasi
Normal file
25
rofi/.config/rofi/config.rasi
Normal file
@ -0,0 +1,25 @@
|
||||
configuration {
|
||||
modi: ["drun", "filebrowser"];
|
||||
font: "Noto Sans CJK JP 12";
|
||||
show-icons: true;
|
||||
bw: 0;
|
||||
display-drun: "";
|
||||
display-window: "";
|
||||
display-combi: "";
|
||||
drun-icon-theme: "Papirus-Dark";
|
||||
terminal: "kitty";
|
||||
scroll-method: 1;
|
||||
run-shell-command: "{terminal} -e fish -ic '{cmd} && read'";
|
||||
}
|
||||
|
||||
@theme "~/.cache/wal/rofi.rasi"
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
}
|
||||
|
||||
window {
|
||||
width: 1200px;
|
||||
}
|
||||
|
||||
// vim:syn=java
|
70
rofi/.config/rofi/launch.sh
Executable file
70
rofi/.config/rofi/launch.sh
Executable file
@ -0,0 +1,70 @@
|
||||
#!/bin/sh
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2018 Donovan Glover
|
||||
|
||||
# This script will find the X server DPI and apply the necessary
|
||||
# settings to make Rofi, X, GNOME, and KDE applications have the
|
||||
# proper scaling, with no intervention from the user necessary.
|
||||
|
||||
# Note that XDG_CURRENT_DESKTOP is required for KDE/Qt applications to
|
||||
# have the proper theming in non-Plasma environments. In contrast, GNOME
|
||||
# respects its theming even when XDG_CURRENT_DESKTOP is not set to it
|
||||
# (through settings.ini).
|
||||
|
||||
# Note that the xcursor size is specified with:
|
||||
#
|
||||
# 1. The X server resource database (xrdb), of which cursor size is
|
||||
# only applied BEFORE your window manager starts
|
||||
# 2. The xsetroot command, which affects the cursor shown on the root
|
||||
# window (your desktop)
|
||||
# 3. The XCURSOR_SIZE environment variable, which affects the current
|
||||
# program
|
||||
#
|
||||
# There are a few things to take away from this:
|
||||
#
|
||||
# 1. The root window (desktop) cursor size MUST be changed with xsetroot
|
||||
# 2. KDE applications will honor XCURSOR_SIZE but NOT xsetroot
|
||||
# 3. GTK applications will honor xsetroot but NOT XCURSOR_SIZE
|
||||
#
|
||||
# Additionally,
|
||||
#
|
||||
# 4. SOME X applications require XCURSOR_SIZE to be set and will NOT
|
||||
# honor xsetroot
|
||||
# 5. SOME X applications require xsetroot to be set and will NOT
|
||||
# honor XCURSOR_SIZE
|
||||
#
|
||||
# So for a consistent variable cursor DPI environment, one has to set BOTH
|
||||
# xsetroot and XCURSOR_SIZE
|
||||
#
|
||||
# Note that existing windows will NOT have their X cursor size changed
|
||||
# if they don't depend on xsetroot. Because of this, and because of the
|
||||
# fact that active windows will not handle DPI changes anyway, you should
|
||||
# probably have no GUIs running when switching DPI.
|
||||
|
||||
# Kill rofi if it's already running to make this a simple toggle script.
|
||||
if pgrep -x rofi; then
|
||||
killall rofi
|
||||
exit
|
||||
fi
|
||||
|
||||
ROFI_DPI=$(xrdb -query | grep Xft.dpi | cut -f 2)
|
||||
ROFI_SCALE=$(expr $ROFI_DPI / 96)
|
||||
ROFI_DPI_SCALE=$(awk "BEGIN { print "1/$ROFI_SCALE" }")
|
||||
|
||||
CURSOR_THEME=${XCURSOR_THEME:-phinger-cursors}
|
||||
CURSOR_SIZE=$((16 * $ROFI_SCALE))
|
||||
|
||||
xsetroot -xcf "/usr/share/icons/$CURSOR_THEME/cursors/left_ptr" "$CURSOR_SIZE"
|
||||
|
||||
env \
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR="0" \
|
||||
QT_FONT_DPI="$ROFI_DPI" \
|
||||
QT_SCREEN_SCALE_FACTORS="VGA-1=$ROFI_SCALE;" \
|
||||
GDK_SCALE="$ROFI_SCALE" \
|
||||
GDK_DPI_SCALE="$ROFI_DPI_SCALE" \
|
||||
XCURSOR_SIZE="$CURSOR_SIZE" \
|
||||
rofi \
|
||||
-show drun \
|
||||
-dpi "$ROFI_DPI" \
|
||||
-normal-window \
|
||||
-m -1
|
169
rofi/.config/wal/templates/rofi.rasi
Normal file
169
rofi/.config/wal/templates/rofi.rasi
Normal file
@ -0,0 +1,169 @@
|
||||
* {{
|
||||
active-background: @background;
|
||||
active-foreground: @foreground;
|
||||
normal-background: @background;
|
||||
normal-foreground: @foreground;
|
||||
urgent-background: @background;
|
||||
urgent-foreground: @foreground;
|
||||
|
||||
alternate-active-background: @background;
|
||||
alternate-active-foreground: @foreground;
|
||||
alternate-normal-background: @background;
|
||||
alternate-normal-foreground: @foreground;
|
||||
alternate-urgent-background: @background;
|
||||
alternate-urgent-foreground: @foreground;
|
||||
|
||||
selected-active-background: {color8};
|
||||
selected-active-foreground: @foreground;
|
||||
selected-normal-background: {color8};
|
||||
selected-normal-foreground: @foreground;
|
||||
selected-urgent-background: {color8};
|
||||
selected-urgent-foreground: @foreground;
|
||||
|
||||
background-color: transparent;
|
||||
background: rgba({background.rgb}, 0.9);
|
||||
foreground: {foreground};
|
||||
border-color: @background;
|
||||
spacing: 2;
|
||||
}}
|
||||
|
||||
#window {{
|
||||
background-color: @background;
|
||||
border: 1px;
|
||||
border-color: {color7};
|
||||
padding: 2.5ch;
|
||||
}}
|
||||
|
||||
#mainbox {{
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}}
|
||||
|
||||
#message {{
|
||||
border: 2px 0px 0px;
|
||||
border-color: @border-color;
|
||||
padding: 1px;
|
||||
}}
|
||||
|
||||
#textbox {{
|
||||
text-color: @foreground;
|
||||
}}
|
||||
|
||||
#inputbar {{
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}}
|
||||
|
||||
#textbox-prompt-colon {{
|
||||
expand: false;
|
||||
str: ":";
|
||||
margin: 0px 0.3em 0em 0em;
|
||||
text-color: @normal-foreground;
|
||||
}}
|
||||
|
||||
#listview {{
|
||||
fixed-height: 0;
|
||||
border: 2px 0px 0px;
|
||||
border-color: @border-color;
|
||||
spacing: 2px;
|
||||
scrollbar: true;
|
||||
padding: 2px 0px 0px;
|
||||
}}
|
||||
|
||||
#element {{
|
||||
border: 0;
|
||||
padding: 1px;
|
||||
}}
|
||||
|
||||
#element-text, element-icon {{
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}}
|
||||
|
||||
#element.normal.normal {{
|
||||
background-color: transparent;
|
||||
text-color: @normal-foreground;
|
||||
}}
|
||||
|
||||
#element.normal.urgent {{
|
||||
background-color: transparent;
|
||||
text-color: @urgent-foreground;
|
||||
}}
|
||||
|
||||
#element.normal.active {{
|
||||
background-color: transparent;
|
||||
text-color: @active-foreground;
|
||||
}}
|
||||
|
||||
#element.selected.normal {{
|
||||
background-color: transparent;
|
||||
text-color: @selected-normal-foreground;
|
||||
}}
|
||||
|
||||
#element.selected.urgent {{
|
||||
background-color: transparent;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}}
|
||||
|
||||
#element.selected.active {{
|
||||
background-color: transparent;
|
||||
text-color: @selected-active-foreground;
|
||||
}}
|
||||
|
||||
#element.alternate.normal {{
|
||||
background-color: transparent;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}}
|
||||
|
||||
#element.alternate.urgent {{
|
||||
background-color: transparent;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}}
|
||||
|
||||
#element.alternate.active {{
|
||||
background-color: transparent;
|
||||
text-color: @alternate-active-foreground;
|
||||
}}
|
||||
|
||||
#scrollbar {{
|
||||
width: 4px;
|
||||
border: 0;
|
||||
handle-width: 8px;
|
||||
padding: 0;
|
||||
}}
|
||||
|
||||
#sidebar {{
|
||||
border: 2px 0px 0px;
|
||||
border-color: @border-color;
|
||||
}}
|
||||
|
||||
#button {{
|
||||
text-color: @normal-foreground;
|
||||
}}
|
||||
|
||||
#button.selected {{
|
||||
background-color: transparent;
|
||||
text-color: @selected-normal-foreground;
|
||||
}}
|
||||
|
||||
#inputbar {{
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
padding: 1px;
|
||||
}}
|
||||
|
||||
#case-indicator {{
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}}
|
||||
|
||||
#entry {{
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}}
|
||||
|
||||
#prompt {{
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}}
|
||||
|
||||
// vim:syn=css
|
17
rofi/README.md
Normal file
17
rofi/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
# rofi
|
||||
|
||||
[rofi][rofi] is an application launcher, window switcher, and dmenu replacement.
|
||||
|
||||
## Use Cases
|
||||
|
||||
rofi can be used to:
|
||||
|
||||
- Launch applications based on `.desktop` files
|
||||
- Show all open windows and switch between them
|
||||
- Parse dmenu-like input
|
||||
|
||||
You should not use rofi if:
|
||||
|
||||
- Your desktop environment already has an application launcher and window switcher
|
||||
|
||||
[rofi]: https://github.com/DaveDavenport/rofi
|
30
sxhkd/.config/sxhkd/dropdown.sh
Executable file
30
sxhkd/.config/sxhkd/dropdown.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2018 Donovan Glover
|
||||
|
||||
# TODO: Run this script when launching stuff, so we can use super+\ to launch anything + hide it again, and have terminal access
|
||||
|
||||
DROPDOWN_DPI=$(xrdb -query | grep Xft.dpi | cut -f 2)
|
||||
DROPDOWN_SCALE=$(($DROPDOWN_DPI / 96))
|
||||
|
||||
c='kitty' # Class
|
||||
i='dropdown' # Instance
|
||||
x='kitty --name' # Executable
|
||||
|
||||
# Note: This solution will not work with termite since it registers two ids.
|
||||
# See https://github.com/thestinger/termite/issues/634 for more information.
|
||||
|
||||
id=$(xdo id -n $i)
|
||||
rectangle=$((1700 * $DROPDOWN_SCALE))x$((600 * $DROPDOWN_SCALE))
|
||||
offset=+$((110 * $DROPDOWN_SCALE))+$((100 * $DROPDOWN_SCALE))
|
||||
# TODO: Use small window when holding shift
|
||||
# TODO: Just use fullscreen from native bspwm/xorg instead of manually setting size
|
||||
# rectangle=$((1920 * $DROPDOWN_SCALE))x$((1080 * $DROPDOWN_SCALE))
|
||||
# offset=+$((0 * $DROPDOWN_SCALE))+$((0 * $DROPDOWN_SCALE))
|
||||
|
||||
bspc rule -r $c:$i
|
||||
bspc rule -a $c:$i sticky=on state=floating rectangle=$rectangle$offset
|
||||
|
||||
([ -z "$id" ]) && ($x $i) ||
|
||||
([[ $(xprop -id "$id" | awk '/window state: / {print $3}') == 'Withdrawn' ]] &&
|
||||
xdo show -n $i || xdo hide -n $i)
|
23
sxhkd/.config/sxhkd/kitty-next.sh
Executable file
23
sxhkd/.config/sxhkd/kitty-next.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
SOCK=$(fd kitty --base-directory /tmp -d 1)
|
||||
KITTY=$(xdotool search --class kitty)
|
||||
|
||||
[ -e "/tmp/opacity-of-terminal" ] || echo 0.9 > /tmp/opacity-of-terminal
|
||||
|
||||
[ "$1" == "up" ] && \
|
||||
NEXT=$(fish -N -c "math (cat /tmp/opacity-of-terminal) + 0.02") ||
|
||||
NEXT=$(fish -N -c "math (cat /tmp/opacity-of-terminal) - 0.02")
|
||||
|
||||
[ "$1" == "up" ] && [ "$(cat /tmp/opacity-of-terminal)" == "1" ] && NEXT=1
|
||||
[ "$1" == "down" ] && [ "$(cat /tmp/opacity-of-terminal)" == "0" ] && NEXT=0
|
||||
|
||||
echo "$NEXT" > /tmp/opacity-of-terminal
|
||||
|
||||
[ "$1" == "up" ] && \
|
||||
notify-send -t 1000 "kitty" "Increased opacity to $NEXT" ||
|
||||
notify-send -t 1000 "kitty" "Decreased opacity to $NEXT"
|
||||
|
||||
[ -n "$KITTY" ] && \
|
||||
([ -e "/tmp/$SOCK" ] && \
|
||||
(kitty @ --to "unix:/tmp/$SOCK" set-background-opacity "$NEXT"))
|
10
sxhkd/.config/sxhkd/kitty.sh
Executable file
10
sxhkd/.config/sxhkd/kitty.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
SOCK=$(fd kitty --base-directory /tmp -d 1)
|
||||
KITTY=$(xdotool search --class kitty)
|
||||
|
||||
[ -n "$KITTY" ] && \
|
||||
([ -e "/tmp/$SOCK" ] && \
|
||||
(kitty @ --to "unix:/tmp/$SOCK" launch --type=tab && \
|
||||
bspc node $KITTY -f)) \
|
||||
|| kitty --single-instance --start-as maximized
|
10
sxhkd/.config/sxhkd/screenshot.sh
Executable file
10
sxhkd/.config/sxhkd/screenshot.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2017-2018 Donovan Glover
|
||||
|
||||
SCREENSHOT_DPI=$(xrdb -query | grep Xft.dpi | cut -f 2)
|
||||
SCREENSHOT_SCALE=$(($SCREENSHOT_DPI / 96))
|
||||
|
||||
DATETIME=`date +%F_%H%M%S`
|
||||
shotgun ~/$DATETIME.png
|
||||
notify-send -t 2000 "Screenshot saved as" "$DATETIME.png"
|
9
sxhkd/.config/sxhkd/selection.sh
Executable file
9
sxhkd/.config/sxhkd/selection.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
DATETIME=`date +%F_%H%M%S`
|
||||
|
||||
if [[ "$1" == "clipboard" ]]; then
|
||||
shotgun $(hacksaw -f "-i %i -g %g") - | xclip -t 'image/png' -selection clipboard
|
||||
else
|
||||
shotgun $(hacksaw -f "-i %i -g %g") ~/$DATETIME.png
|
||||
fi
|
151
sxhkd/.config/sxhkd/sxhkdrc
Normal file
151
sxhkd/.config/sxhkd/sxhkdrc
Normal file
@ -0,0 +1,151 @@
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2017-2018 Donovan Glover
|
||||
|
||||
# Reload sxhkd / Quit bspwm
|
||||
super + {_, alt} + Escape
|
||||
{pkill -USR1 -x sxhkd && notify-send -t 2000 "sxhkd" "Reloaded config",bspc quit}
|
||||
|
||||
super + d
|
||||
libinput-gestures-setup restart && notify-send -t 2000 "libinput-gestures" "Reloaded config"
|
||||
|
||||
# Dynamically adjust gaps of current desktop
|
||||
super + {_, shift +} g
|
||||
{ bspc config -d focused window_gap $(( $(bspc config -d focused window_gap) + 10 )), \
|
||||
[ $(bspc config -d focused window_gap) -ge 20 ] && \
|
||||
bspc config -d focused window_gap $(( $(bspc config -d focused window_gap) - 10 )) }
|
||||
|
||||
# Dynamically adjust borders of nodes on current desktop
|
||||
super + {_, shift +} i
|
||||
{ bspc config -d focused border_width $(( $(bspc config -d focused border_width) + 1 )), \
|
||||
[ $(bspc config -d focused border_width) -ge 1 ] && \
|
||||
bspc config -d focused border_width $(( $(bspc config -d focused border_width) - 1 )) }
|
||||
|
||||
# Take a screenshot
|
||||
super + p
|
||||
~/.config/sxhkd/screenshot.sh
|
||||
|
||||
# Screenshot a selection
|
||||
super + {shift,alt} + p
|
||||
~/.config/sxhkd/selection.sh {_,clipboard}
|
||||
|
||||
# Open a new terminal window
|
||||
super + {_,shift} + Return
|
||||
~/.config/sxhkd/kitty.sh
|
||||
|
||||
# Toggle a dropdown terminal
|
||||
super + backslash
|
||||
~/.config/sxhkd/dropdown.sh
|
||||
|
||||
# TODO: Replace old polybar keybind with status notification
|
||||
# toggle tint2: bottom_padding depends on the panel_size you set in tint2rc
|
||||
super + o
|
||||
(xdotool search --class --onlyvisible "tint2" && \
|
||||
(xdo hide -n "tint2" && bspc config bottom_padding 0)) || \
|
||||
(xdo show -n "tint2" && bspc config bottom_padding 30)
|
||||
|
||||
# Change the wal color scheme
|
||||
super + m
|
||||
wal -o ~/.config/wal/done.sh --theme random_dark -e
|
||||
|
||||
super + z
|
||||
wal -o ~/.config/wal/done.sh -i ~/bgs -e
|
||||
|
||||
super + r
|
||||
wal -o ~/.config/wal/done.sh -R -e
|
||||
|
||||
alt + F1
|
||||
~/.config/rofi/launch.sh
|
||||
|
||||
super + {equal,minus}
|
||||
~/.config/sxhkd/kitty-next.sh {up,down}
|
||||
|
||||
# ====================
|
||||
# ======= Node =======
|
||||
# ====================
|
||||
|
||||
# Close the focused window
|
||||
super + {_,shift} + q
|
||||
bspc node -{c,k}
|
||||
|
||||
# Switch to / Swap with the node in the specified direction
|
||||
super + {_,shift} + {h,j,k,l}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
|
||||
# FLAGS: Toggle between node flags
|
||||
super + {x,y}
|
||||
bspc node -g {sticky,private}
|
||||
|
||||
# FLAGS: Push and pop windows from the hidden stack
|
||||
super + {_,shift} + b
|
||||
bspc node {-g hidden,$(bspc query -N -n .hidden | tail -n 1) -g hidden=off}
|
||||
|
||||
# STATES: Toggle between node states
|
||||
super + {t,w,f,space}
|
||||
bspc node focused -t ~{tiled,pseudo_tiled,fullscreen,floating}
|
||||
|
||||
# PRESELECT: The direction to create a new node
|
||||
super + ctrl + {h,j,k,l,space}
|
||||
bspc node -p {west,south,north,east,cancel}
|
||||
|
||||
# RATIO: The size of a new node
|
||||
super + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# =======================
|
||||
# ======= Desktop =======
|
||||
# =======================
|
||||
|
||||
# Focus a certain desktop / Send a node to a certain desktop
|
||||
super + {_,shift} + {1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
# Move to the next desktop on the current monitor
|
||||
super + {_, shift} + Tab
|
||||
bspc desktop -f {next,prev}.local.occupied
|
||||
|
||||
# Easily go back and forth between the last desktop used
|
||||
super + a
|
||||
bspc desktop -f last
|
||||
|
||||
# Switch between tiled and monocle desktop layouts
|
||||
super + c
|
||||
bspc desktop -l next
|
||||
|
||||
# =======================
|
||||
# ======= fn keys =======
|
||||
# =======================
|
||||
|
||||
super + F1
|
||||
pactl set-sink-mute @DEFAULT_SINK@ toggle && notify-send -t 2000 "Changed muted to" "$(pamixer --get-mute)"
|
||||
|
||||
super + F2
|
||||
pamixer -d 5 && notify-send -t 2000 "Lowered volume to" "$(pamixer --get-volume)%"
|
||||
|
||||
super + F3
|
||||
pamixer -i 5 && notify-send -t 2000 "Raised volume to" "$(pamixer --get-volume)%"
|
||||
|
||||
super + F4
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
|
||||
super + F5
|
||||
brightnessctl set 5%- && notify-send -t 2000 "Decreased brightness to" "$(brightnessctl get)"
|
||||
|
||||
super + F6
|
||||
brightnessctl set +5% && notify-send -t 2000 "Increased brightness to" "$(brightnessctl get)"
|
||||
|
||||
super + F7
|
||||
playerctl -p mpv previous && notify-send -t 2000 "Previous track" "$(playerctl -p mpv metadata xesam:title)"
|
||||
|
||||
super + F8
|
||||
playerctl -p mpv next && notify-send -t 2000 "Next track" "$(playerctl -p mpv metadata xesam:title)"
|
||||
|
||||
super + F9
|
||||
playerctl -p mpv play-pause && notify-send -t 2000 "mpv" "$(playerctl -p mpv status)"
|
||||
|
||||
super + F10
|
||||
playerctl -p mpv position "5-" && notify-send -t 2000 "Minus 5 seconds" "$(playerctl -p mpv position)"
|
||||
|
||||
super + F11
|
||||
playerctl -p mpv position "5+" && notify-send -t 2000 "Plus 5 seconds" "$(playerctl -p mpv position)"
|
||||
|
||||
# vim:ft=sxhkdrc
|
16
sxhkd/README.md
Normal file
16
sxhkd/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# sxhkd
|
||||
|
||||
[sxhkd][sxhkd] is a hotkey daemon for X11.
|
||||
|
||||
## Use Cases
|
||||
|
||||
sxhkd can be used to:
|
||||
|
||||
- Bind any key combination to whatever shell command you want
|
||||
- Control windows in [bspwm](/bspwm) through `bspc`
|
||||
|
||||
You should not use sxhkd if:
|
||||
|
||||
- You use a desktop environment that sets keybinds for you
|
||||
|
||||
[sxhkd]: https://github.com/baskerville/sxhkd
|
2
thunar/.config/xfce4/helpers.rc
Normal file
2
thunar/.config/xfce4/helpers.rc
Normal file
@ -0,0 +1,2 @@
|
||||
TerminalEmulator=kitty
|
||||
TerminalEmulatorDismissed=true
|
17
thunar/README.md
Normal file
17
thunar/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
# thunar
|
||||
|
||||
[thunar][thunar] is a GTK file manager.
|
||||
|
||||
## Use Cases
|
||||
|
||||
thunar can be used to:
|
||||
|
||||
- Have a graphical interface for browsing files on a computer
|
||||
- Not worry about the cascading effect of nautilus
|
||||
- Have thumbnails update instantly, no refresh needed most of the time
|
||||
|
||||
You should not use thunar if:
|
||||
|
||||
- You want to search in your file browser (nautilus is better for this)
|
||||
|
||||
[thunar]: https://gitlab.xfce.org/xfce/thunar
|
2
xcursor/.icons/default/index.theme
Normal file
2
xcursor/.icons/default/index.theme
Normal file
@ -0,0 +1,2 @@
|
||||
[icon theme]
|
||||
Inherits=phinger-cursors
|
16
xcursor/README.md
Normal file
16
xcursor/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# xcursor
|
||||
|
||||
[xcursor][xcursor] is used to choose the X11 cursor theme.
|
||||
|
||||
## Use Cases
|
||||
|
||||
xcursor can be used to:
|
||||
|
||||
- Set the X cursor independent of the GUI toolkit being used
|
||||
- Set the X cursor for programs that don't use a GUI toolkit
|
||||
|
||||
You should not use xcursor if:
|
||||
|
||||
- You are using a desktop environment that manages cursor settings for you
|
||||
|
||||
[xcursor]: https://wiki.archlinux.org/index.php/Cursor_themes
|
18
xinit/.xinitrc
Normal file
18
xinit/.xinitrc
Normal file
@ -0,0 +1,18 @@
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2017-2018 Donovan Glover
|
||||
|
||||
# Source the .Xresources file
|
||||
xrdb -merge ~/.Xresources
|
||||
|
||||
# Source the files in the xinitrc.d directory
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
||||
# Start the window manager
|
||||
exec bspwm
|
||||
|
||||
# vim:ft=sh
|
15
xinit/README.md
Normal file
15
xinit/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# xinit
|
||||
|
||||
[xinit][xinit] is used to run the X display server with `startx`.
|
||||
|
||||
## Use Cases
|
||||
|
||||
xinit can be used to:
|
||||
|
||||
- Start X from a tty
|
||||
|
||||
You should not use xinit if:
|
||||
|
||||
- You use a display manager that bypasses the tty
|
||||
|
||||
[xinit]: https://wiki.archlinux.org/index.php/Xinit
|
22
xresources/.Xresources
Normal file
22
xresources/.Xresources
Normal file
@ -0,0 +1,22 @@
|
||||
! New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
! Copyright (C) 2017-2018 Donovan Glover
|
||||
|
||||
! Make it easier to distinguish between letters (Required for dpi < 300)
|
||||
Xft.hinting: true
|
||||
|
||||
! Make high resolution output look cleaner
|
||||
Xft.antialias: true
|
||||
|
||||
! Only use hinting if the font provides it; do not attempt to autohint
|
||||
Xft.autohint: false
|
||||
|
||||
! Reduce blur and other unwanted artifacts
|
||||
Xft.lcdfilter: lcddefault
|
||||
|
||||
! Align the font fully to the grid (increases clarity)
|
||||
Xft.hintstyle: hintfull
|
||||
|
||||
! Set the type of subpixel antialiasing to rgb
|
||||
Xft.rgba: rgb
|
||||
|
||||
! vim:ft=xdefaults
|
17
xresources/README.md
Normal file
17
xresources/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
# xresources
|
||||
|
||||
[xresources][xresources] is used to configure X settings outside of desktop environments.
|
||||
|
||||
## Use Cases
|
||||
|
||||
xresources can be used to:
|
||||
|
||||
- Set the font settings for low-level X applications
|
||||
- Change the DPI of the X instance
|
||||
|
||||
You do not need xresources if:
|
||||
|
||||
- You are using a desktop environment that handles X or higher-level settings for you
|
||||
- You are not using X
|
||||
|
||||
[xresources]: https://wiki.archlinux.org/index.php/X_resources
|
23
zathura/.config/wal/templates/zathura
Normal file
23
zathura/.config/wal/templates/zathura
Normal file
@ -0,0 +1,23 @@
|
||||
# [colors]
|
||||
set default-bg "{background}"
|
||||
set default-fg "{foreground}"
|
||||
set statusbar-bg "{background}"
|
||||
set statusbar-fg "{foreground}"
|
||||
set inputbar-bg "{background}"
|
||||
set inputbar-fg "{foreground}"
|
||||
set notification-bg "{background}"
|
||||
set notification-fg "{foreground}"
|
||||
set notification-error-bg "{background}"
|
||||
set notification-error-fg "{foreground}"
|
||||
set notification-warning-bg "{background}"
|
||||
set notification-warning-fg "{foreground}"
|
||||
set highlight-color "{color3}"
|
||||
set highlight-active-color "{color4}"
|
||||
set completion-bg "{color3}"
|
||||
set completion-fg "{color4}"
|
||||
set completion-highlight-bg "{color3}"
|
||||
set completion-highlight-fg "{color4}"
|
||||
set recolor-lightcolor "{background}"
|
||||
set recolor-darkcolor "{foreground}"
|
||||
|
||||
# vim:ft=conf
|
15
zathura/.config/zathura/zathurarc
Normal file
15
zathura/.config/zathura/zathurarc
Normal file
@ -0,0 +1,15 @@
|
||||
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
||||
# Copyright (C) 2017-2022 Donovan Glover
|
||||
|
||||
# Use the color scheme generated by wal (Use <C-r> to colorize the current document)
|
||||
include "../../.cache/wal/zathura"
|
||||
|
||||
set font "Hack 12" # Use Hack as our font of choice
|
||||
set guioptions "v" # Show a "progress bar" when scrolling up/down
|
||||
set adjust-open "width" # Make documents take up all the available space by default
|
||||
set statusbar-basename "true" # When using the status bar, show the basename only
|
||||
|
||||
set render-loading "false" # Do not show the "loading" text
|
||||
set scroll-step "120" # Increase the scroll distance when using j/k
|
||||
|
||||
# vim:ft=conf
|
19
zathura/README.md
Normal file
19
zathura/README.md
Normal file
@ -0,0 +1,19 @@
|
||||
# zathura
|
||||
|
||||
[zathura][zathura] is a document viewer that displays PDFs and other files with no GUI.
|
||||
|
||||
## Use Cases
|
||||
|
||||
zathura can be used to:
|
||||
|
||||
- View .pdf and .djvu files
|
||||
- View documents with the same color scheme as the rest of your setup
|
||||
- Recolor a PDF file with a dark background and light text
|
||||
- Strategically add documents to your rice screenshots
|
||||
|
||||
You should not use zathura if:
|
||||
|
||||
- You want to see page thumbnails
|
||||
- You want to see and click on GUI components
|
||||
|
||||
[zathura]: https://github.com/pwmt/zathura
|
Loading…
Reference in New Issue
Block a user