mirror of
https://codeberg.org/andyscott/dotfiles.git
synced 2024-11-09 14:00:47 -05:00
Compare commits
No commits in common. "171d3edd66d52a989c2d18ea93a505c2b519aff7" and "d3007e791984b61c4d4634a449c37cb8a3701861" have entirely different histories.
171d3edd66
...
d3007e7919
47 changed files with 2187 additions and 802 deletions
3
.chezmoiignore
Normal file
3
.chezmoiignore
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
LICENSE
|
||||||
|
README.md
|
||||||
|
Packages.txt
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
bin/mirror-outputs
|
|
||||||
config/*
|
|
||||||
!config/bspwm
|
|
||||||
config/bspwm/*
|
|
||||||
!config/bspwm/bspwmrc
|
|
||||||
!config/dunst
|
|
||||||
!config/kitty
|
|
||||||
!config/nvim
|
|
||||||
config/nvim/*
|
|
||||||
!config/nvim/init.vim
|
|
||||||
!config/polybar
|
|
||||||
config/polybar/*
|
|
||||||
!config/polybar/config.ini
|
|
||||||
!config/polybar/colors.ini
|
|
||||||
!config/polybar/modules.ini
|
|
||||||
!config/polybar/custom_modules.ini
|
|
||||||
!config/ranger
|
|
||||||
!config/rofi
|
|
||||||
!config/sxhkd
|
|
||||||
config/sxhkd/*
|
|
||||||
!config/sxhkd/sxhkdrc
|
|
||||||
emacs.d/*
|
|
||||||
!emacs.d/init.el
|
|
||||||
!emacs.d/snippets
|
|
|
@ -1,23 +0,0 @@
|
||||||
config/*
|
|
||||||
!config/bspwm
|
|
||||||
config/bspwm/*
|
|
||||||
!config/bspwm/bspwmrc
|
|
||||||
!config/dunst
|
|
||||||
!config/kitty
|
|
||||||
!config/nvim
|
|
||||||
config/nvim/*
|
|
||||||
!config/nvim/init.vim
|
|
||||||
!config/polybar
|
|
||||||
config/polybar/*
|
|
||||||
!config/polybar/config.ini
|
|
||||||
!config/polybar/colors.ini
|
|
||||||
!config/polybar/modules.ini
|
|
||||||
!config/polybar/custom_modules.ini
|
|
||||||
!config/ranger
|
|
||||||
!config/rofi
|
|
||||||
!config/sxhkd
|
|
||||||
config/sxhkd/*
|
|
||||||
!config/sxhkd/sxhkdrc
|
|
||||||
emacs.d/*
|
|
||||||
!emacs.d/init.el
|
|
||||||
!emacs.d/snippets
|
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
install.sh
|
|
||||||
Xresources
|
|
||||||
bin/mirror-outputs
|
|
||||||
config/*
|
|
||||||
!config/dunst
|
|
||||||
!config/kitty
|
|
||||||
!config/nvim
|
|
||||||
config/nvim/*
|
|
||||||
!config/nvim/init.vim
|
|
||||||
!config/polybar
|
|
||||||
config/polybar/*
|
|
||||||
!config/polybar/colors.ini
|
|
||||||
!config/polybar/modules.ini
|
|
||||||
!config/polybar/custom_modules.ini
|
|
||||||
!config/ranger
|
|
||||||
!config/rofi
|
|
||||||
!config/xsettingsd
|
|
||||||
emacs.d/*
|
|
||||||
!emacs.d/init.el
|
|
||||||
!emacs.d/snippets
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
config/*
|
|
||||||
!config/bspwm
|
|
||||||
config/bspwm/*
|
|
||||||
!config/bspwm/bspwmrc
|
|
||||||
!config/dunst
|
|
||||||
!config/kitty
|
|
||||||
!config/nvim
|
|
||||||
config/nvim/*
|
|
||||||
!config/nvim/init.vim
|
|
||||||
!config/polybar
|
|
||||||
config/polybar/*
|
|
||||||
!config/polybar/config.ini
|
|
||||||
!config/polybar/colors.ini
|
|
||||||
!config/polybar/modules.ini
|
|
||||||
!config/polybar/custom_modules.ini
|
|
||||||
!config/ranger
|
|
||||||
!config/rofi
|
|
||||||
!config/sxhkd
|
|
||||||
config/sxhkd/*
|
|
||||||
!config/sxhkd/sxhkdrc
|
|
||||||
emacs.d/*
|
|
||||||
!emacs.d/init.el
|
|
||||||
!emacs.d/snippets
|
|
31
LICENSE
31
LICENSE
|
@ -1,21 +1,16 @@
|
||||||
MIT License
|
MIT No Attribution
|
||||||
|
|
||||||
Copyright (c) 2021 Andrew Scott
|
Copyright 2022 Andrew Scott
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
software and associated documentation files (the "Software"), to deal in the Software
|
||||||
in the Software without restriction, including without limitation the rights
|
without restriction, including without limitation the rights to use, copy, modify,
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished
|
permit persons to whom the Software is furnished to do so.
|
||||||
to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
copies or substantial portions of the Software.
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
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.
|
|
||||||
|
|
|
@ -2,29 +2,48 @@
|
||||||
# Adjust as necessary.
|
# Adjust as necessary.
|
||||||
|
|
||||||
# Arch repos
|
# Arch repos
|
||||||
|
bind
|
||||||
bspwm
|
bspwm
|
||||||
sxhkd
|
|
||||||
pulseaudio
|
|
||||||
pulseaudio-bluetooth
|
|
||||||
pavucontrol
|
|
||||||
neofetch
|
|
||||||
dunst
|
dunst
|
||||||
|
emacs
|
||||||
|
galculator
|
||||||
|
git
|
||||||
gsimplecal
|
gsimplecal
|
||||||
|
htop
|
||||||
dex
|
dex
|
||||||
feh
|
feh
|
||||||
|
firefox
|
||||||
emacs
|
emacs
|
||||||
|
gnome-keyring
|
||||||
|
logrotate
|
||||||
|
ncdu
|
||||||
|
neofetch
|
||||||
neovim
|
neovim
|
||||||
|
nextcloud-client
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
kitty
|
kitty
|
||||||
ranger
|
ranger
|
||||||
|
redshift
|
||||||
rofi
|
rofi
|
||||||
rxvt-unicode
|
rxvt-unicode
|
||||||
papirus-icon-theme
|
papirus-icon-theme
|
||||||
|
pavucontrol
|
||||||
|
pipewire
|
||||||
|
wireplumber
|
||||||
|
pipewire-pulse
|
||||||
|
snapper # btrfs only
|
||||||
|
sxhkd
|
||||||
|
thunderbird
|
||||||
|
ttf-dejavu
|
||||||
|
ttf-fira-code
|
||||||
ttf-font-awesome
|
ttf-font-awesome
|
||||||
ttf-hack
|
ttf-hack
|
||||||
|
ttf-ibm-plex
|
||||||
|
ttf-liberation
|
||||||
xsecurelock
|
xsecurelock
|
||||||
xss-lock
|
xss-lock
|
||||||
polkit-gnome
|
polkit-gnome
|
||||||
gnome-keyring
|
|
||||||
xorg-xserver
|
xorg-xserver
|
||||||
xorg-xinit
|
xorg-xinit
|
||||||
xorg-xsetroot
|
xorg-xsetroot
|
||||||
|
@ -36,19 +55,27 @@ xdotool
|
||||||
dbus-pyton
|
dbus-pyton
|
||||||
|
|
||||||
# AUR
|
# AUR
|
||||||
|
arkenfox-user.js
|
||||||
|
birdtray
|
||||||
|
btrfs-du # more accurate du for btrfs
|
||||||
|
pa-notify
|
||||||
polybar
|
polybar
|
||||||
pulseaudio-control
|
pulseaudio-control
|
||||||
|
needrestart
|
||||||
neovim-plug-git
|
neovim-plug-git
|
||||||
xidlehook
|
|
||||||
gruvbox-dark-gtk
|
gruvbox-dark-gtk
|
||||||
|
sbkeys
|
||||||
|
sbupdate-git
|
||||||
spotify
|
spotify
|
||||||
spotify-adblock-git
|
spotify-adblock-git
|
||||||
polybar-spotify
|
polybar-spotify
|
||||||
rofi-power-menu
|
rofi-power-menu
|
||||||
st
|
st
|
||||||
vimix-gtk-themes-git
|
vimix-gtk-themes-git
|
||||||
|
xidlehook
|
||||||
|
|
||||||
# Laptop/Thinkpads (for xbacklight etc., your needs may vary)
|
# Laptop/Thinkpads (for xbacklight etc., your needs may vary)
|
||||||
|
tlp
|
||||||
acpi_call
|
acpi_call
|
||||||
acpi_call-lts # only if LTS kernel installed, see 'acpi_call-dkms' for other variants
|
acpi_call-lts # only if LTS kernel installed, see 'acpi_call-dkms' for other variants
|
||||||
acpilight # or 'light' is sometimes needed for older thinkpads
|
acpilight # or 'light' is sometimes needed for older thinkpads
|
38
README.md
38
README.md
|
@ -1,38 +0,0 @@
|
||||||
# dotfiles
|
|
||||||
|
|
||||||
### Configuration files for Arch Linux with bspwm and zenburn
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone https://codeberg.org/acscott/dotfiles.git ~/.dotfiles
|
|
||||||
cd ~/.dotfiles
|
|
||||||
# list branches
|
|
||||||
git branch -a
|
|
||||||
# checkout desired branch
|
|
||||||
git checkout <branch>
|
|
||||||
# update install.sh as needed, then run it
|
|
||||||
./install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that laptop labeled branches can also be used for single monitor
|
|
||||||
desktops. The difference is that they have Thinkpad specific keybinds for some
|
|
||||||
function keys (sxhkdrc), and the screen dims when idle (xidlehook in bspwmrc).
|
|
||||||
|
|
||||||
If something goes wrong, the install.sh script creates backups
|
|
||||||
in ~/dotfiles_backup. The script is simple enough that it should be
|
|
||||||
easily editable, but obviously feel free to copy or symlink the
|
|
||||||
files how you see fit.
|
|
||||||
|
|
||||||
### laptop-hidpi configuration
|
|
||||||
|
|
||||||
#### Zenburn
|
|
||||||
![Desktop screenshot of the laptop-hidpi configuration](info/screenshots/screenshot.png)
|
|
||||||
|
|
||||||
#### Gruvbox
|
|
||||||
![Desktop screenshot of the laptop-hidpi configuration](info/screenshots/screenshot2.png)
|
|
||||||
[Wallpaper](https://www.reddit.com/r/wallpaper/comments/ll1gov/arch_gruvbox_wallpaper_v2_dark_light_3840x2160/ "Wallpaper")
|
|
||||||
|
|
||||||
### dual-monitor-fhd configuration
|
|
||||||
![Desktop sceenshot of the dual-monitor-fhd configuration](info/screenshots/dual-monitor-screenshot.png)
|
|
||||||
[Wallpaper](https://www.wallpaperflare.com/minimalism-gruvbox-wallpaper-qcaln "Wallpaper")
|
|
||||||
|
|
||||||
Licensed under the [MIT License](LICENSE) unless otherwise noted here, or by placing a separate license in a directory.
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Terminate already running bar instances
|
|
||||||
killall -q polybar
|
|
||||||
|
|
||||||
# Wait until the processes have been shut down
|
|
||||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
|
||||||
|
|
||||||
# Launch Polybar, using default config location ~/.config/polybar/config
|
|
||||||
polybar one -r --config=~/.config/polybar/config.ini &
|
|
||||||
polybar two -r --config=~/.config/polybar/config.ini &
|
|
||||||
|
|
||||||
echo "Polybar launched..."
|
|
|
@ -1,7 +0,0 @@
|
||||||
/** Basic config file **/
|
|
||||||
|
|
||||||
configuration {
|
|
||||||
show-icons: true;
|
|
||||||
icon-theme: "Papirus";
|
|
||||||
}
|
|
||||||
@import "/usr/share/rofi/themes/gruvbox-dark-hard.rasi"
|
|
156
dot_Xresources.tmpl
Normal file
156
dot_Xresources.tmpl
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
! -----------------------------------------------------------------------------
|
||||||
|
! Colors: gruvbox-dark, forest night, zenburn
|
||||||
|
! Source: https://github.com/morhetz/gruvbox-generalized
|
||||||
|
! https://github.com/jef/forest-night-xresources
|
||||||
|
! https://github.com/jnurmine/Zenburn
|
||||||
|
! -----------------------------------------------------------------------------
|
||||||
|
{{if eq .chezmoi.hostname "helix" }}
|
||||||
|
! Laptop screen DPI
|
||||||
|
Xft.dpi: 216
|
||||||
|
{{- end}}
|
||||||
|
|
||||||
|
Xft.autohint: 0
|
||||||
|
Xft.lcdfilter: lcddefault
|
||||||
|
Xft.hintstyle: hintfull
|
||||||
|
Xft.hinting: 1
|
||||||
|
Xft.antialias: 1
|
||||||
|
Xft.rgba: rgb
|
||||||
|
|
||||||
|
!---------!
|
||||||
|
! Gruvbox !
|
||||||
|
! --------!
|
||||||
|
|
||||||
|
! hard contrast: *background: #1d2021
|
||||||
|
! medium contrast: *background: #282828
|
||||||
|
! soft contrast: *background: #32302f
|
||||||
|
! *background: #1d2021
|
||||||
|
! *foreground: #ebdbb2
|
||||||
|
! ! Black + DarkGrey
|
||||||
|
! *color0: #282828
|
||||||
|
! *color8: #928374
|
||||||
|
! ! DarkRed + Red
|
||||||
|
! *color1: #cc241d
|
||||||
|
! *color9: #fb4934
|
||||||
|
! ! DarkGreen + Green
|
||||||
|
! *color2: #98971a
|
||||||
|
! *color10: #b8bb26
|
||||||
|
! ! DarkYellow + Yellow
|
||||||
|
! *color3: #d79921
|
||||||
|
! *color11: #fabd2f
|
||||||
|
! ! DarkBlue + Blue
|
||||||
|
! *color4: #458588
|
||||||
|
! *color12: #83a598
|
||||||
|
! ! DarkMagenta + Magenta
|
||||||
|
! *color5: #b16286
|
||||||
|
! *color13: #d3869b
|
||||||
|
! ! DarkCyan + Cyan
|
||||||
|
! *color6: #689d6a
|
||||||
|
! *color14: #8ec07c
|
||||||
|
! ! LightGrey + White
|
||||||
|
! *color7: #a89984
|
||||||
|
! *color15: #ebdbb2
|
||||||
|
|
||||||
|
!------------!
|
||||||
|
! Everforest !
|
||||||
|
!------------!
|
||||||
|
|
||||||
|
! special
|
||||||
|
*.foreground: #d8caac
|
||||||
|
*.background: #323d43
|
||||||
|
*.cursorColor: #7fbbb3
|
||||||
|
! black
|
||||||
|
*.color0: #4a555b
|
||||||
|
*.color8: #525c62
|
||||||
|
! red
|
||||||
|
*.color1: #e26c6e
|
||||||
|
*.color9: #e68183
|
||||||
|
! green
|
||||||
|
*.color2: #9bb86f
|
||||||
|
*.color10: #a7c080
|
||||||
|
! yellow
|
||||||
|
*.color3: #d5b26b
|
||||||
|
*.color11: #dbbc7f
|
||||||
|
! blue
|
||||||
|
*.color4: #6eb2a9
|
||||||
|
*.color12: #7fbbb3
|
||||||
|
! magenta
|
||||||
|
*.color5: #cf87a9
|
||||||
|
*.color13: #d699b6
|
||||||
|
! cyan
|
||||||
|
*.color6: #72b783
|
||||||
|
*.color14: #83c092
|
||||||
|
! white
|
||||||
|
*.color7: #d0bf9b
|
||||||
|
*.color15: #d8caac
|
||||||
|
|
||||||
|
!---------!
|
||||||
|
! Zenburn !
|
||||||
|
!---------!
|
||||||
|
|
||||||
|
! *background: #3f3f3f
|
||||||
|
! *foreground: #dcdccc
|
||||||
|
! ! Black + DarkGrey
|
||||||
|
! *color0: #282828
|
||||||
|
! *color8: #709080
|
||||||
|
! ! DarkRed + Red
|
||||||
|
! *color1: #705050
|
||||||
|
! *color9: #dca3a3
|
||||||
|
! ! DarkGreen + Green
|
||||||
|
! *color2: #60b48a
|
||||||
|
! *color10: #c3bf9f
|
||||||
|
! ! DarkYellow + Yellow
|
||||||
|
! *color3: #f0deae
|
||||||
|
! *color11: #dfcf9f
|
||||||
|
! ! DarkBlue + Blue
|
||||||
|
! *color4: #506070
|
||||||
|
! *color12: #94bff3
|
||||||
|
! ! DarkMagenta + Magenta
|
||||||
|
! *color5: #dc8cc3
|
||||||
|
! *color13: #ec93d3
|
||||||
|
! ! DarkCyan + Cyan
|
||||||
|
! *color6: #8cd0d3
|
||||||
|
! *color14: #93e0e3
|
||||||
|
! ! LightGrey + White
|
||||||
|
! *color7: #dcdccc
|
||||||
|
! *color15: #ffffff
|
||||||
|
|
||||||
|
!!! urxvt
|
||||||
|
URxvt.perl-ext-common: default,matcher
|
||||||
|
URxvt*buffered: true
|
||||||
|
URxvt*saveLines: 5000
|
||||||
|
URxvt*cursorBlink: true
|
||||||
|
URxvt*borderless: 1
|
||||||
|
URxvt*internalBorder: 20
|
||||||
|
URxvt*scrollBar: false
|
||||||
|
URxvt.url-launcher: /usr/bin/xdg-open
|
||||||
|
URxvt.matcher.button: 1
|
||||||
|
URxvt.clipboard.autocopy: true
|
||||||
|
|
||||||
|
! do not scroll with output
|
||||||
|
URxvt*scrollTtyOutput: false
|
||||||
|
! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
|
||||||
|
URxvt*scrollWithBuffer: true
|
||||||
|
! scroll back to the bottom on keypress
|
||||||
|
URxvt*scrollTtyKeypress: true
|
||||||
|
! disable scrollback buffer in secondary screen (allows scrolling pager when using 'less' etc)
|
||||||
|
URxvt.secondaryScreen: 1
|
||||||
|
URxvt.secondaryScroll: 0
|
||||||
|
! Disable printing the terminal contents when pressing PrintScreen.
|
||||||
|
URxvt.print-pipe: "cat > /dev/null"
|
||||||
|
!! copy/paste
|
||||||
|
! disable default ctrl-shift binding
|
||||||
|
URxvt.iso14755: false
|
||||||
|
URxvt.iso14755_52: false
|
||||||
|
! disable default copy/paste bindings
|
||||||
|
URxvt.keysym.Control-Meta-c: builtin-string:
|
||||||
|
URxvt.keysym.Control-Meta-v: builtin-string:
|
||||||
|
! new copy/paste bindings
|
||||||
|
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||||
|
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||||
|
!! font
|
||||||
|
!URxvt.letterSpace: -1
|
||||||
|
URxvt.font: xft:Hack:regular:size=12, \
|
||||||
|
xft:Font Awesome 6 Brands:Regular:size=10, \
|
||||||
|
xft:Font Awesome 6 Free:Solid:size=10, \
|
||||||
|
xft:Font Awesome 6 Free:Regular:size=10
|
||||||
|
|
|
@ -8,4 +8,3 @@
|
||||||
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
||||||
exec startx
|
exec startx
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -8,9 +8,13 @@
|
||||||
alias ls='ls --color=auto'
|
alias ls='ls --color=auto'
|
||||||
PS1='[\u@\h \W]\$ '
|
PS1='[\u@\h \W]\$ '
|
||||||
|
|
||||||
|
export GPG_TTY=$(tty)
|
||||||
|
export EDITOR=emacs
|
||||||
|
|
||||||
alias nv=nvim
|
alias nv=nvim
|
||||||
alias r="urxvt -name Ranger -e ranger & disown"
|
alias r="urxvt -name Ranger -e ranger & disown"
|
||||||
alias kssh="/usr/bin/kitty +kitten ssh"
|
alias kssh="/usr/bin/kitty +kitten ssh"
|
||||||
|
|
||||||
neofetch
|
neofetch
|
||||||
|
|
||||||
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh
|
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh
|
79
dot_config/bspwm/executable_bspwmrc.tmpl
Normal file
79
dot_config/bspwm/executable_bspwmrc.tmpl
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
#!/bin/bash
|
||||||
|
{{ if (or (eq .chezmoi.hostname "helix") (eq .chezmoi.hostname "triangulum")) }}
|
||||||
|
bspc monitor eDP-1 -d 1 2 3 4 5 6 7 8 9 10
|
||||||
|
{{- end }}
|
||||||
|
{{ if eq .chezmoi.hostname "hydrus"}}
|
||||||
|
bspc monitor DP-0 -d 1 2 3 4 5
|
||||||
|
bspc monitor DVI-I-1 -d 6 7 8 9 10
|
||||||
|
{{ end }}
|
||||||
|
bspc config border_width 2
|
||||||
|
{{- if eq .chezmoi.hostname "helix" }}
|
||||||
|
bspc config window_gap 10
|
||||||
|
bspc config top_padding 70
|
||||||
|
{{ else }}
|
||||||
|
bspc config window_gap 5
|
||||||
|
bspc config top_padding 38
|
||||||
|
{{- end}}
|
||||||
|
bspc config bottom_padding 0
|
||||||
|
bspc config split_ratio 0.50
|
||||||
|
bspc config borderless_monocle true
|
||||||
|
bspc config gapless_monocle true
|
||||||
|
|
||||||
|
bspc rule -a Galculator state=floating
|
||||||
|
bspc rule -a vlc state=floating
|
||||||
|
bspc rule -a Blueman-manager state=floating
|
||||||
|
bspc rule -a Blueberry.py state=floating
|
||||||
|
bspc rule -a Bitwarden state=floating
|
||||||
|
bspc rule -a Leafpad state=floating
|
||||||
|
bspc rule -a KeePassXC state=floating
|
||||||
|
|
||||||
|
bspc rule -a firefox desktop='^1' follow=on
|
||||||
|
bspc rule -a Chromium desktop='^2' follow=on
|
||||||
|
bspc rule -a Vivaldi-stable desktop='^2' follow=on
|
||||||
|
bspc rule -a Evince desktop='4' follow=on
|
||||||
|
bspc rule -a Soffice desktop='^4' follow=on
|
||||||
|
bspc rule -a Simple-scan='^4' follow=on
|
||||||
|
bspc rule -a Xsane desktop='^4' follow=on state=floating
|
||||||
|
bspc rule -a Alacritty desktop='^6' follow=on
|
||||||
|
bspc rule -a kitty desktop='^6' follow=on
|
||||||
|
bspc rule -a URxvt desktop='^6' follow=on
|
||||||
|
bspc rule -a URxvt:Ranger desktop='^3' follow=on
|
||||||
|
bspc rule -a Thunar desktop='3' follow=on
|
||||||
|
bspc rule -a Steam desktop='^5' follow=on state=floating
|
||||||
|
bspc rule -a Lutris desktop='^5' follow=on state=floating
|
||||||
|
bspc rule -a origin.exe desktop='^5' state=floating
|
||||||
|
bspc rule -a Emacs desktop='^7' follow=on state=fullscreen
|
||||||
|
bspc rule -a Dino desktop='^8'
|
||||||
|
bspc rule -a Gajim desktop='^8'
|
||||||
|
bspc rule -a discord desktop='^8'
|
||||||
|
bspc rule -a Element desktop='^9'
|
||||||
|
bspc rule -a Slack desktop='^9'
|
||||||
|
bspc rule -a teams-for-linux desktop='^9'
|
||||||
|
bspc rule -a thunderbird desktop='^10'
|
||||||
|
bspc rule -a tutanota-desktop desktop='^10'
|
||||||
|
|
||||||
|
### Focus on 1st workspace by default
|
||||||
|
bspc desktop -f 1
|
||||||
|
|
||||||
|
### Autostart
|
||||||
|
grep -x sxhkd > /dev/null || sxhkd &
|
||||||
|
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||||
|
xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock &
|
||||||
|
xsettingsd &
|
||||||
|
sh ~/.fehbg &
|
||||||
|
pa-notify -t 3 &
|
||||||
|
redshift -r &
|
||||||
|
picom &
|
||||||
|
dunst &
|
||||||
|
dex -a &
|
||||||
|
birdtray &
|
||||||
|
{{- if (or (eq .chezmoi.hostname "helix") (eq .chezmoi.hostname "triangulum")) }}
|
||||||
|
xidlehook --not-when-audio --not-when-fullscreen --timer 120 "killall -q redshift && xrandr --output eDP-1 --brightness .1" "xrandr --output eDP-1 --brightness 1 && redshift -r & disown" --timer 480 "xset s activate" "xrandr --output eDP-1 --brightness 1 && redshift -r & disown" &
|
||||||
|
cbatticon -u 20 -i standard -c "systemctl hibernate" &
|
||||||
|
$HOME/.local/bin/tint2-launcher &
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq .chezmoi.hostname "hydrus"}}
|
||||||
|
xidlehook --not-when-audio --not-when-fullscreen --timer 360 "xset s activate" "" &
|
||||||
|
$HOME/.local/bin/dual-polybar-launcher &
|
||||||
|
{{- end }}
|
||||||
|
sleep 10 && nextcloud --background &
|
|
@ -51,7 +51,7 @@
|
||||||
# Draw a line of "separator_height" pixel height between two
|
# Draw a line of "separator_height" pixel height between two
|
||||||
# notifications.
|
# notifications.
|
||||||
# Set to 0 to disable.
|
# Set to 0 to disable.
|
||||||
separator_height = 2
|
separator_height = 4
|
||||||
|
|
||||||
# Padding between text and separator.
|
# Padding between text and separator.
|
||||||
padding = 8
|
padding = 8
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
|
|
||||||
### Text ###
|
### Text ###
|
||||||
|
|
||||||
font = Fira Mono 11
|
font = Hack 11
|
||||||
|
|
||||||
# The spacing between lines. If the height is smaller than the
|
# The spacing between lines. If the height is smaller than the
|
||||||
# font height, it will get raised to the font height.
|
# font height, it will get raised to the font height.
|
|
@ -22,5 +22,4 @@ color6 #8cd0d3
|
||||||
color14 #93e0e3
|
color14 #93e0e3
|
||||||
color7 #dcdccc
|
color7 #dcdccc
|
||||||
color15 #ffffff
|
color15 #ffffff
|
||||||
selection_foreground #3f3f3f
|
selection_foreground #3f3f3f
|
||||||
|
|
|
@ -29,7 +29,7 @@ set expandtab " Converts tabs to spaces
|
||||||
set smartindent " Makes indenting smart
|
set smartindent " Makes indenting smart
|
||||||
set autoindent " Good auto indent
|
set autoindent " Good auto indent
|
||||||
set laststatus=0 " Always display the status line
|
set laststatus=0 " Always display the status line
|
||||||
set number " Line numbers
|
"set number " Line numbers
|
||||||
"set cursorline " Enable highlighting of the current line
|
"set cursorline " Enable highlighting of the current line
|
||||||
set background=dark " tell vim what the background color looks like
|
set background=dark " tell vim what the background color looks like
|
||||||
set showtabline=4 " Always show tabs
|
set showtabline=4 " Always show tabs
|
||||||
|
@ -86,7 +86,7 @@ endif
|
||||||
" Set contrast.
|
" Set contrast.
|
||||||
" This configuration option should be placed before `colorscheme everforest`.
|
" This configuration option should be placed before `colorscheme everforest`.
|
||||||
" Available values: 'hard', 'medium'(default), 'soft'
|
" Available values: 'hard', 'medium'(default), 'soft'
|
||||||
let g:everforest_background = 'medium'
|
let g:everforest_background = 'soft'
|
||||||
" For better performance
|
" For better performance
|
||||||
let g:everforest_better_performance = 1
|
let g:everforest_better_performance = 1
|
||||||
colorscheme everforest
|
colorscheme everforest
|
||||||
|
@ -99,3 +99,15 @@ colorscheme everforest
|
||||||
|
|
||||||
" NERDTree Toggle
|
" NERDTree Toggle
|
||||||
nmap <silent> <Leader>k :NERDTreeToggle<CR>
|
nmap <silent> <Leader>k :NERDTreeToggle<CR>
|
||||||
|
|
||||||
|
" CoC completion
|
||||||
|
inoremap <silent><expr> <TAB>
|
||||||
|
\ pumvisible() ? "\<C-n>" :
|
||||||
|
\ CheckBackspace() ? "\<TAB>" :
|
||||||
|
\ coc#refresh()
|
||||||
|
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
|
||||||
|
|
||||||
|
function! CheckBackspace() abort
|
||||||
|
let col = col('.') - 1
|
||||||
|
return !col || getline('.')[col - 1] =~# '\s'
|
||||||
|
endfunction
|
417
dot_config/picom/picom.conf
Normal file
417
dot_config/picom/picom.conf
Normal file
|
@ -0,0 +1,417 @@
|
||||||
|
#################################
|
||||||
|
# Shadows #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Enabled client-side shadows on windows. Note desktop windows
|
||||||
|
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||||
|
# unless explicitly requested using the wintypes option.
|
||||||
|
#
|
||||||
|
# shadow = false
|
||||||
|
shadow = true;
|
||||||
|
|
||||||
|
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||||
|
# shadow-radius = 12
|
||||||
|
shadow-radius = 7;
|
||||||
|
|
||||||
|
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||||
|
# shadow-opacity = .75
|
||||||
|
|
||||||
|
# The left offset for shadows, in pixels. (defaults to -15)
|
||||||
|
# shadow-offset-x = -15
|
||||||
|
shadow-offset-x = -7;
|
||||||
|
|
||||||
|
# The top offset for shadows, in pixels. (defaults to -15)
|
||||||
|
# shadow-offset-y = -15
|
||||||
|
shadow-offset-y = -7;
|
||||||
|
|
||||||
|
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-red = 0
|
||||||
|
|
||||||
|
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-green = 0
|
||||||
|
|
||||||
|
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-blue = 0
|
||||||
|
|
||||||
|
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||||
|
# shadow-color = "#000000"
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should have no shadow.
|
||||||
|
#
|
||||||
|
# examples:
|
||||||
|
# shadow-exclude = "n:e:Notification";
|
||||||
|
#
|
||||||
|
# shadow-exclude = []
|
||||||
|
shadow-exclude = [
|
||||||
|
"name = 'Notification'",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"class_g = 'Cairo-clock'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||||
|
# clip-shadow-above = []
|
||||||
|
|
||||||
|
# Specify a X geometry that describes the region in which shadow should not
|
||||||
|
# be painted in, such as a dock window region. Use
|
||||||
|
# shadow-exclude-reg = "x10+0+0"
|
||||||
|
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||||
|
#
|
||||||
|
# shadow-exclude-reg = ""
|
||||||
|
|
||||||
|
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||||
|
# xinerama-shadow-crop = false
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Fading #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Fade windows in/out when opening/closing and when opacity changes,
|
||||||
|
# unless no-fading-openclose is used.
|
||||||
|
# fading = false
|
||||||
|
fading = true;
|
||||||
|
|
||||||
|
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||||
|
# fade-in-step = 0.028
|
||||||
|
fade-in-step = 0.03;
|
||||||
|
|
||||||
|
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||||
|
# fade-out-step = 0.03
|
||||||
|
fade-out-step = 0.03;
|
||||||
|
|
||||||
|
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||||
|
fade-delta = 5
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should not be faded.
|
||||||
|
fade-exclude = [ "class_g = 'xsecurelock'" ];
|
||||||
|
|
||||||
|
# Do not fade on window open/close.
|
||||||
|
# no-fading-openclose = false
|
||||||
|
|
||||||
|
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||||
|
# no-fading-destroyed-argb = false
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Transparency / Opacity #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||||
|
# inactive-opacity = 1
|
||||||
|
inactive-opacity = 0.95;
|
||||||
|
|
||||||
|
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||||
|
# frame-opacity = 1.0
|
||||||
|
frame-opacity = 0.9;
|
||||||
|
|
||||||
|
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||||
|
# inactive-opacity-override = true
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
|
||||||
|
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||||
|
# active-opacity = 1.0
|
||||||
|
|
||||||
|
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||||
|
# inactive-dim = 0.0
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should never be considered focused.
|
||||||
|
# focus-exclude = []
|
||||||
|
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||||
|
|
||||||
|
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||||
|
# inactive-dim-fixed = 1.0
|
||||||
|
|
||||||
|
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||||
|
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||||
|
# Note we don't make any guarantee about possible conflicts with other
|
||||||
|
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||||
|
# example:
|
||||||
|
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||||
|
#
|
||||||
|
# opacity-rule = []
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Corners #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||||
|
# round the corners of windows. Does not interact well with
|
||||||
|
# `transparent-clipping`.
|
||||||
|
corner-radius = 0
|
||||||
|
|
||||||
|
# Exclude conditions for rounded corners.
|
||||||
|
rounded-corners-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Background-Blurring #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||||
|
# blur-method =
|
||||||
|
# blur-size = 12
|
||||||
|
#
|
||||||
|
# blur-deviation = false
|
||||||
|
#
|
||||||
|
# blur-strength = 5
|
||||||
|
|
||||||
|
# Blur background of semi-transparent / ARGB windows.
|
||||||
|
# Bad in performance, with driver-dependent behavior.
|
||||||
|
# The name of the switch may change without prior notifications.
|
||||||
|
#
|
||||||
|
# blur-background = false
|
||||||
|
|
||||||
|
# Blur background of windows when the window frame is not opaque.
|
||||||
|
# Implies:
|
||||||
|
# blur-background
|
||||||
|
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||||
|
#
|
||||||
|
# blur-background-frame = false
|
||||||
|
|
||||||
|
|
||||||
|
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||||
|
# blur-background-fixed = false
|
||||||
|
|
||||||
|
|
||||||
|
# Specify the blur convolution kernel, with the following format:
|
||||||
|
# example:
|
||||||
|
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||||
|
#
|
||||||
|
# blur-kern = ""
|
||||||
|
blur-kern = "3x3box";
|
||||||
|
|
||||||
|
|
||||||
|
# Exclude conditions for background blur.
|
||||||
|
# blur-background-exclude = []
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# General Settings #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||||
|
# daemon = false
|
||||||
|
|
||||||
|
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||||
|
# `xrender` is the default one.
|
||||||
|
#
|
||||||
|
# backend = "glx"
|
||||||
|
backend = "glx";
|
||||||
|
|
||||||
|
# Enable/disable VSync.
|
||||||
|
# vsync = false
|
||||||
|
vsync = true;
|
||||||
|
|
||||||
|
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||||
|
# dbus = false
|
||||||
|
|
||||||
|
# Try to detect WM windows (a non-override-redirect window with no
|
||||||
|
# child that has 'WM_STATE') and mark them as active.
|
||||||
|
#
|
||||||
|
# mark-wmwin-focused = false
|
||||||
|
mark-wmwin-focused = true;
|
||||||
|
|
||||||
|
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||||
|
# mark-ovredir-focused = false
|
||||||
|
mark-ovredir-focused = true;
|
||||||
|
|
||||||
|
# Try to detect windows with rounded corners and don't consider them
|
||||||
|
# shaped windows. The accuracy is not very high, unfortunately.
|
||||||
|
#
|
||||||
|
# detect-rounded-corners = false
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
|
||||||
|
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||||
|
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||||
|
#
|
||||||
|
# detect-client-opacity = false
|
||||||
|
detect-client-opacity = true;
|
||||||
|
|
||||||
|
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||||
|
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||||
|
# provided that the WM supports it.
|
||||||
|
#
|
||||||
|
# use-ewmh-active-win = false
|
||||||
|
|
||||||
|
# Unredirect all windows if a full-screen opaque window is detected,
|
||||||
|
# to maximize performance for full-screen windows. Known to cause flickering
|
||||||
|
# when redirecting/unredirecting windows.
|
||||||
|
#
|
||||||
|
# unredir-if-possible = false
|
||||||
|
|
||||||
|
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||||
|
# unredir-if-possible-delay = 0
|
||||||
|
|
||||||
|
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||||
|
# unredir-if-possible-exclude = []
|
||||||
|
|
||||||
|
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||||
|
# in the same group focused at the same time.
|
||||||
|
#
|
||||||
|
# detect-transient = false
|
||||||
|
detect-transient = true;
|
||||||
|
|
||||||
|
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||||
|
# group focused at the same time. This usually means windows from the same application
|
||||||
|
# will be considered focused or unfocused at the same time.
|
||||||
|
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||||
|
#
|
||||||
|
# detect-client-leader = false
|
||||||
|
|
||||||
|
# Resize damaged region by a specific number of pixels.
|
||||||
|
# A positive value enlarges it while a negative one shrinks it.
|
||||||
|
# If the value is positive, those additional pixels will not be actually painted
|
||||||
|
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||||
|
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||||
|
# Primarily used to fix the line corruption issues of blur,
|
||||||
|
# in which case you should use the blur radius value here
|
||||||
|
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||||
|
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||||
|
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||||
|
#
|
||||||
|
# resize-damage = 1
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||||
|
# Resource-hogging, and is not well tested.
|
||||||
|
#
|
||||||
|
# invert-color-include = []
|
||||||
|
|
||||||
|
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||||
|
# Might cause incorrect opacity when rendering transparent content (but never
|
||||||
|
# practically happened) and may not work with blur-background.
|
||||||
|
# My tests show a 15% performance boost. Recommended.
|
||||||
|
#
|
||||||
|
glx-no-stencil = true;
|
||||||
|
|
||||||
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
|
# Probably could improve performance on rapid window content changes,
|
||||||
|
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||||
|
# Recommended if it works.
|
||||||
|
#
|
||||||
|
# glx-no-rebind-pixmap = false
|
||||||
|
|
||||||
|
# Disable the use of damage information.
|
||||||
|
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||||
|
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||||
|
# The opposing option is use-damage
|
||||||
|
#
|
||||||
|
# no-use-damage = false
|
||||||
|
use-damage = true;
|
||||||
|
|
||||||
|
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||||
|
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||||
|
# with GLX backend for some users.
|
||||||
|
#
|
||||||
|
# xrender-sync-fence = false
|
||||||
|
|
||||||
|
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||||
|
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||||
|
# in the source tree for examples.
|
||||||
|
#
|
||||||
|
# glx-fshader-win = ""
|
||||||
|
|
||||||
|
# Force all windows to be painted with blending. Useful if you
|
||||||
|
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||||
|
#
|
||||||
|
# force-win-blend = false
|
||||||
|
|
||||||
|
# Do not use EWMH to detect fullscreen windows.
|
||||||
|
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||||
|
#
|
||||||
|
# no-ewmh-fullscreen = false
|
||||||
|
|
||||||
|
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||||
|
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||||
|
# so this could comes with a performance hit.
|
||||||
|
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||||
|
#
|
||||||
|
# max-brightness = 1.0
|
||||||
|
|
||||||
|
# Make transparent windows clip other windows like non-transparent windows do,
|
||||||
|
# instead of blending on top of them.
|
||||||
|
#
|
||||||
|
# transparent-clipping = false
|
||||||
|
|
||||||
|
# Set the log level. Possible values are:
|
||||||
|
# "trace", "debug", "info", "warn", "error"
|
||||||
|
# in increasing level of importance. Case doesn't matter.
|
||||||
|
# If using the "TRACE" log level, it's better to log into a file
|
||||||
|
# using *--log-file*, since it can generate a huge stream of logs.
|
||||||
|
#
|
||||||
|
# log-level = "debug"
|
||||||
|
log-level = "warn";
|
||||||
|
|
||||||
|
# Set the log file.
|
||||||
|
# If *--log-file* is never specified, logs will be written to stderr.
|
||||||
|
# Otherwise, logs will to written to the given file, though some of the early
|
||||||
|
# logs might still be written to the stderr.
|
||||||
|
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||||
|
#
|
||||||
|
# log-file = "/path/to/your/log/file"
|
||||||
|
|
||||||
|
# Show all X errors (for debugging)
|
||||||
|
# show-all-xerrors = false
|
||||||
|
|
||||||
|
# Write process ID to a file.
|
||||||
|
# write-pid-path = "/path/to/your/log/file"
|
||||||
|
|
||||||
|
# Window type settings
|
||||||
|
#
|
||||||
|
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||||
|
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||||
|
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||||
|
# "tooltip", "notification", "combo", and "dnd".
|
||||||
|
#
|
||||||
|
# Following per window-type options are available: ::
|
||||||
|
#
|
||||||
|
# fade, shadow:::
|
||||||
|
# Controls window-type-specific shadow and fade settings.
|
||||||
|
#
|
||||||
|
# opacity:::
|
||||||
|
# Controls default opacity of the window type.
|
||||||
|
#
|
||||||
|
# focus:::
|
||||||
|
# Controls whether the window of this type is to be always considered focused.
|
||||||
|
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||||
|
#
|
||||||
|
# full-shadow:::
|
||||||
|
# Controls whether shadow is drawn under the parts of the window that you
|
||||||
|
# normally won't be able to see. Useful when the window has parts of it
|
||||||
|
# transparent, and you want shadows in those areas.
|
||||||
|
#
|
||||||
|
# clip-shadow-above:::
|
||||||
|
# Controls wether shadows that would have been drawn above the window should
|
||||||
|
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||||
|
#
|
||||||
|
# redir-ignore:::
|
||||||
|
# Controls whether this type of windows should cause screen to become
|
||||||
|
# redirected again after been unredirected. If you have unredir-if-possible
|
||||||
|
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||||
|
# you can set this to `true`.
|
||||||
|
#
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||||
|
dock = { shadow = false; clip-shadow-above = true; }
|
||||||
|
dnd = { shadow = false; }
|
||||||
|
popup_menu = { opacity = 0.9; }
|
||||||
|
dropdown_menu = { opacity = 0.9; }
|
||||||
|
# menu = { shadow = false; };
|
||||||
|
# dropdown_menu = { shadow = false; };
|
||||||
|
# popup_menu = { shadow = false; };
|
||||||
|
# utility = { shadow = false; };
|
||||||
|
};
|
132
dot_config/polybar/config.ini
Normal file
132
dot_config/polybar/config.ini
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
[global/wm]
|
||||||
|
include-file = ~/.config/polybar/colors.ini
|
||||||
|
include-file = ~/.config/polybar/modules.ini
|
||||||
|
include-file = ~/.config/polybar/custom_modules.ini
|
||||||
|
|
||||||
|
margin-bottom = 0
|
||||||
|
margin-top = 0
|
||||||
|
|
||||||
|
[bar/one]
|
||||||
|
monitor = eDP-1
|
||||||
|
monitor-fallback =
|
||||||
|
monitor-strict = false
|
||||||
|
enable-ipc = true
|
||||||
|
override-redirect = true
|
||||||
|
bottom = false
|
||||||
|
fixed-center = true
|
||||||
|
width = 100%
|
||||||
|
height = 72
|
||||||
|
offset-x = 0%
|
||||||
|
offset-y = 0%
|
||||||
|
dpi-x = 216
|
||||||
|
dpi-y = 216
|
||||||
|
background = ${color.background}
|
||||||
|
foreground = ${color.foreground}
|
||||||
|
radius-top = 0.0
|
||||||
|
radius-bottom = 0.0
|
||||||
|
line-size = 0
|
||||||
|
line-color = ${color.background}
|
||||||
|
border-bottom-size = 0
|
||||||
|
border-bottom-color = ${color.foreground}
|
||||||
|
padding = 1
|
||||||
|
module-margin-left = 1
|
||||||
|
module-margin-right = 0
|
||||||
|
seperator =
|
||||||
|
dim-value = 1.0
|
||||||
|
locale = en_US.UTF-8
|
||||||
|
|
||||||
|
font-0 = Hack:size=10;3
|
||||||
|
font-1 = Font Awesome 6 Free:style=Solid:size=12;3
|
||||||
|
font-2 = Font Awesome 6 Free:style=Regular:size=12;3
|
||||||
|
font-3 = Font Awesome 6 Brands:style=Regular:size=12;3
|
||||||
|
|
||||||
|
modules-left = workspaces sep title
|
||||||
|
modules-center = spotify
|
||||||
|
modules-right = keyboard sep pulseaudio-control sep battery0 sep date sep powermenu
|
||||||
|
|
||||||
|
tray-position = right
|
||||||
|
tray-detached = false
|
||||||
|
tray-maxsize = 40
|
||||||
|
tray-background = ${color.background}
|
||||||
|
tray-offset-x = 0
|
||||||
|
tray-offset-y = 0
|
||||||
|
tray-padding = 0
|
||||||
|
tray-scale = 1.0
|
||||||
|
|
||||||
|
wm-name = bspwm
|
||||||
|
wm-restack = bspwm
|
||||||
|
scroll-up = bspwm-desknext
|
||||||
|
scroll-down = bspwm-deskprev
|
||||||
|
click-left =
|
||||||
|
click-middle =
|
||||||
|
click-right =
|
||||||
|
;scroll-up = bspc desktop -f prev.local
|
||||||
|
;scroll-down = bspc desktop -f next.local
|
||||||
|
double-click-left =
|
||||||
|
double-click-middle =
|
||||||
|
double-click-right =
|
||||||
|
cursor-click =
|
||||||
|
cursor-scroll =
|
||||||
|
|
||||||
|
[bar/two]
|
||||||
|
monitor = eDP-1
|
||||||
|
monitor-fallback =
|
||||||
|
monitor-strict = false
|
||||||
|
enable-ipc = true
|
||||||
|
override-redirect = true
|
||||||
|
bottom = true
|
||||||
|
fixed-center = true
|
||||||
|
width = 100%
|
||||||
|
height = 32
|
||||||
|
offset-x = 0%
|
||||||
|
offset-y = 0%
|
||||||
|
background = ${color.background}
|
||||||
|
foreground = ${color.foreground}
|
||||||
|
radius-top = 0.0
|
||||||
|
radius-bottom = 0.0
|
||||||
|
line-size = 0
|
||||||
|
line-color = ${color.background}
|
||||||
|
border-bottom-size = 0
|
||||||
|
border-bottom-color = ${color.foreground}
|
||||||
|
padding = 1
|
||||||
|
module-margin-left = 1
|
||||||
|
module-margin-right = 1
|
||||||
|
seperator =
|
||||||
|
dim-value = 1.0
|
||||||
|
locale = en_US.UTF-8
|
||||||
|
|
||||||
|
font-0 = Hack:size=10;3
|
||||||
|
font-1 = Font Awesome 5 Free:style=Solid:size=12;3
|
||||||
|
font-2 = Font Awesome 5 Free:style=Regular:size=12;3
|
||||||
|
font-3 = Font Awesome 5 Brands:style=Regular:size=12;3
|
||||||
|
|
||||||
|
modules-left = workspaces sep title
|
||||||
|
modules-center = spotify
|
||||||
|
modules-right = cpu sep memory sep filesystem
|
||||||
|
|
||||||
|
tray-position = none
|
||||||
|
tray-detached = false
|
||||||
|
tray-maxsize = 16
|
||||||
|
tray-background = ${color.background}
|
||||||
|
tray-offset-x = 0
|
||||||
|
tray-offset-y = 0
|
||||||
|
tray-padding = 0
|
||||||
|
tray-scale = 1.0
|
||||||
|
|
||||||
|
wm-name = bspwm
|
||||||
|
wm-restack = bspwm
|
||||||
|
scroll-up = bspwm-desknext
|
||||||
|
scroll-down = bspwm-deskprev
|
||||||
|
click-left =
|
||||||
|
click-middle =
|
||||||
|
click-right =
|
||||||
|
;scroll-up = bspc desktop -f prev.local
|
||||||
|
;scroll-down = bspc desktop -f next.local
|
||||||
|
double-click-left =
|
||||||
|
double-click-middle =
|
||||||
|
double-click-right =
|
||||||
|
cursor-click =
|
||||||
|
cursor-scroll =
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
screenchange-reload = false
|
|
@ -83,7 +83,7 @@ tail = true
|
||||||
;format-underline = ${colors.cyan}
|
;format-underline = ${colors.cyan}
|
||||||
;label-padding = 2
|
;label-padding = 2
|
||||||
;label-foreground = ${color.foreground}
|
;label-foreground = ${color.foreground}
|
||||||
label-foreground = ${color.dark-blue}
|
label-foreground = ${color.blue}
|
||||||
|
|
||||||
# You can copy-paste your options for each possible action, which is more
|
# You can copy-paste your options for each possible action, which is more
|
||||||
# trouble-free but repetitive, or apply only the relevant ones (for example
|
# trouble-free but repetitive, or apply only the relevant ones (for example
|
|
@ -842,7 +842,8 @@ icon-3 = 4;
|
||||||
icon-4 = 5;
|
icon-4 = 5;
|
||||||
icon-5 = 6;
|
icon-5 = 6;
|
||||||
icon-6 = 7;
|
icon-6 = 7;
|
||||||
icon-7 = 8;
|
icon-7 = 8;
|
||||||
|
;
|
||||||
icon-8 = 9;
|
icon-8 = 9;
|
||||||
icon-9 = 10;
|
icon-9 = 10;
|
||||||
icon-default =
|
icon-default =
|
||||||
|
@ -894,4 +895,3 @@ label-active-padding = 1
|
||||||
label-urgent-padding = 1
|
label-urgent-padding = 1
|
||||||
label-occupied-padding = 1
|
label-occupied-padding = 1
|
||||||
label-empty-padding = 1
|
label-empty-padding = 1
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
Zenburn theme for rofi
|
Everforest dark theme for rofi
|
||||||
|
|
||||||
Based on the Zenburn color scheme for Vim by jnurmine
|
Based on the Everforest color scheme for Vim by sainnhe
|
||||||
https://github.com/jnurmine/Zenburn
|
https://github.com/sainnhe/everforest/
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
* {
|
* {
|
||||||
|
@ -10,53 +10,53 @@
|
||||||
highlight: bold italic;
|
highlight: bold italic;
|
||||||
scrollbar: true;
|
scrollbar: true;
|
||||||
|
|
||||||
/* Zenburn colors */
|
/* Everforest colors */
|
||||||
|
|
||||||
zenburn-bg0: #3f3f3f;
|
everforest-bg0: #323d43;
|
||||||
zenburn-bg1: #4f4f4f;
|
everforest-bg1: #525c6d;
|
||||||
zenburn-fg: #dcdccc;
|
everforest-fg: #d8cacc;
|
||||||
zenburn-black: #282828;
|
everforest-black: #4a555b;
|
||||||
zenburn-dark-grey: #709080;
|
everforest-dark-grey: #525c62;
|
||||||
zenburn-dark-red: #705050;
|
everforest-dark-red: #e26c6e;
|
||||||
zenburn-red: #dca3a3;
|
everforest-red: #e68183;
|
||||||
zenburn-dark-yellow: #f0deae;
|
everforest-dark-yellow: #d5b26b;
|
||||||
zenburn-yellow: #dfcf9f;
|
everforest-yellow: #dbbc7f;
|
||||||
zenburn-dark-blue: #506070;
|
everforest-dark-blue: #6eb2a9;
|
||||||
zenburn-blue: #94bff3;
|
everforest-blue: #7fbbb3;
|
||||||
zenburn-dark-magenta: #dc8cc3;
|
everforest-dark-magenta: #cf87a9;
|
||||||
zenburn-magenta: #ec93d3;
|
everforest-magenta: #d699b6;
|
||||||
zenburn-dark-cyan: #8cd0d3;
|
everforest-dark-cyan: #72b783;
|
||||||
zenburn-cyan: #93e0e3;
|
everforest-cyan: #83c092;
|
||||||
zenburn-light-grey: #dcdccc;
|
everforest-light-grey: #d8caac;
|
||||||
zenburn-white: #ffffff;
|
everforest-white: #d8caac;
|
||||||
|
|
||||||
/* Theme colors */
|
/* Theme colors */
|
||||||
background: @zenburn-bg0;
|
background: @everforest-bg0;
|
||||||
background-color: @background;
|
background-color: @background;
|
||||||
foreground: @zenburn-fg;
|
foreground: @everforest-fg;
|
||||||
border-color: @zenburn-dark-yellow;
|
border-color: @everforest-dark-yellow;
|
||||||
separatorcolor: @border-color;
|
separatorcolor: @border-color;
|
||||||
scrollbar-handle: @border-color;
|
scrollbar-handle: @border-color;
|
||||||
|
|
||||||
normal-background: @background;
|
normal-background: @background;
|
||||||
normal-foreground: @foreground;
|
normal-foreground: @foreground;
|
||||||
alternate-normal-background: @zenburn-bg1;
|
alternate-normal-background: @everforest-bg1;
|
||||||
alternate-normal-foreground: @foreground;
|
alternate-normal-foreground: @foreground;
|
||||||
selected-normal-background: @zenburn-dark-cyan;
|
selected-normal-background: @everforest-dark-cyan;
|
||||||
selected-normal-foreground: @zenburn-black;
|
selected-normal-foreground: @everforest-black;
|
||||||
|
|
||||||
active-background: @zenburn-yellow;
|
active-background: @everforest-yellow;
|
||||||
active-foreground: @background;
|
active-foreground: @background;
|
||||||
alternate-active-background: @active-background;
|
alternate-active-background: @active-background;
|
||||||
alternate-active-foreground: @active-foreground;
|
alternate-active-foreground: @active-foreground;
|
||||||
selected-active-background: @zenburn-cyan;
|
selected-active-background: @everforest-cyan;
|
||||||
selected-active-foreground: @active-foreground;
|
selected-active-foreground: @active-foreground;
|
||||||
|
|
||||||
urgent-background: @zenburn-dark-red;
|
urgent-background: @everforest-dark-red;
|
||||||
urgent-foreground: @background;
|
urgent-foreground: @background;
|
||||||
alternate-urgent-background: @urgent-background;
|
alternate-urgent-background: @urgent-background;
|
||||||
alternate-urgent-foreground: @urgent-foreground;
|
alternate-urgent-foreground: @urgent-foreground;
|
||||||
selected-urgent-background: @zenburn-red;
|
selected-urgent-background: @everforest-red;
|
||||||
selected-urgent-foreground: @urgent-foreground;
|
selected-urgent-foreground: @urgent-foreground;
|
||||||
}
|
}
|
||||||
|
|
188
dot_config/sxhkd/executable_sxhkdrc.tmpl
Normal file
188
dot_config/sxhkd/executable_sxhkdrc.tmpl
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
#
|
||||||
|
# wm independent hotkeys
|
||||||
|
#
|
||||||
|
|
||||||
|
# terminal emulator
|
||||||
|
super + Return
|
||||||
|
kitty
|
||||||
|
{{ if eq .chezmoi.hostname "helix"}}
|
||||||
|
# power menu
|
||||||
|
super + @End
|
||||||
|
rofi -dpi 240 -show power-menu -modi power-menu:/usr/bin/rofi-power-menu
|
||||||
|
|
||||||
|
# program launcher
|
||||||
|
super + @space
|
||||||
|
rofi -dpi 240 -modi drun, run -show drun -show-icons
|
||||||
|
{{ else }}
|
||||||
|
# power menu
|
||||||
|
super + @End
|
||||||
|
rofi -show power-menu -modi power-menu:/usr/bin/rofi-power-menu
|
||||||
|
|
||||||
|
# program launcher
|
||||||
|
super + @space
|
||||||
|
rofi -modi drun, run -show drun -show-icons
|
||||||
|
{{ end }}
|
||||||
|
# make sxhkd reload its configuration files:
|
||||||
|
super + Escape
|
||||||
|
pkill -USR1 -x sxhkd
|
||||||
|
|
||||||
|
# Show list of open windows
|
||||||
|
alt + @Tab
|
||||||
|
rofi -show window
|
||||||
|
|
||||||
|
# Lock the screen
|
||||||
|
ctrl + alt + l
|
||||||
|
xset s activate
|
||||||
|
|
||||||
|
# Screenshot
|
||||||
|
Print
|
||||||
|
maim | xclip -selection clipboard -t image/png
|
||||||
|
|
||||||
|
alt + Print
|
||||||
|
maim -s | xclip -selection clipboard -t image/png
|
||||||
|
|
||||||
|
shift + Print
|
||||||
|
maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
|
||||||
|
|
||||||
|
# bspwm hotkeys
|
||||||
|
#
|
||||||
|
|
||||||
|
# quit/restart bspwm
|
||||||
|
super + alt + {q,r}
|
||||||
|
bspc {quit,wm -r}
|
||||||
|
|
||||||
|
# close and kill
|
||||||
|
super + {_,shift + }q
|
||||||
|
bspc node -{c,k}
|
||||||
|
|
||||||
|
# alternate between the tiled and monocle layout
|
||||||
|
super + m
|
||||||
|
bspc desktop -l next
|
||||||
|
|
||||||
|
# send the newest marked node to the newest preselected node
|
||||||
|
super + y
|
||||||
|
bspc node newest.marked.local -n newest.!automatic.local
|
||||||
|
|
||||||
|
# swap the current node and the biggest window
|
||||||
|
super + g
|
||||||
|
bspc node -s biggest.window
|
||||||
|
|
||||||
|
#
|
||||||
|
# state/flags
|
||||||
|
#
|
||||||
|
|
||||||
|
# set the window state
|
||||||
|
super + {t,shift + t,s,f}
|
||||||
|
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||||
|
|
||||||
|
# set the node flags
|
||||||
|
super + ctrl + {m,x,y,z}
|
||||||
|
bspc node -g {marked,locked,sticky,private}
|
||||||
|
|
||||||
|
#
|
||||||
|
# focus/swap
|
||||||
|
#
|
||||||
|
|
||||||
|
# focus the node in the given direction
|
||||||
|
super + {_,shift + }{h,j,k,l}
|
||||||
|
bspc node -{f,s} {west,south,north,east}
|
||||||
|
|
||||||
|
# focus the node for the given path jump
|
||||||
|
super + {p,b,comma,period}
|
||||||
|
bspc node -f @{parent,brother,first,second}
|
||||||
|
|
||||||
|
# focus the next/previous window in the current desktop
|
||||||
|
super + {_,shift + }c
|
||||||
|
bspc node -f {next,prev}.local.!hidden.window
|
||||||
|
|
||||||
|
# focus the next/previous desktop in the current monitor
|
||||||
|
super + bracket{left,right}
|
||||||
|
bspc desktop -f {prev,next}.local
|
||||||
|
|
||||||
|
# focus the last node/desktop
|
||||||
|
super + {grave,Tab}
|
||||||
|
bspc {node,desktop} -f last
|
||||||
|
|
||||||
|
# focus the older or newer node in the focus history
|
||||||
|
super + {o,i}
|
||||||
|
bspc wm -h off; \
|
||||||
|
bspc node {older,newer} -f; \
|
||||||
|
bspc wm -h on
|
||||||
|
|
||||||
|
# focus or send to the given desktop
|
||||||
|
super + {_,shift + }{1-9,0}
|
||||||
|
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||||
|
|
||||||
|
#
|
||||||
|
# preselect
|
||||||
|
#
|
||||||
|
|
||||||
|
# preselect the direction
|
||||||
|
super + ctrl + {h,j,k,l}
|
||||||
|
bspc node -p {west,south,north,east}
|
||||||
|
|
||||||
|
# preselect the ratio
|
||||||
|
super + ctrl + {1-9}
|
||||||
|
bspc node -o 0.{1-9}
|
||||||
|
|
||||||
|
# cancel the preselection for the focused node
|
||||||
|
super + ctrl + space
|
||||||
|
bspc node -p cancel
|
||||||
|
|
||||||
|
# cancel the preselection for the focused desktop
|
||||||
|
super + ctrl + shift + space
|
||||||
|
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||||
|
|
||||||
|
#
|
||||||
|
# move/resize
|
||||||
|
#
|
||||||
|
|
||||||
|
# expand a window by moving one of its side outward
|
||||||
|
super + alt + {h,j,k,l}
|
||||||
|
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||||
|
|
||||||
|
# contract a window by moving one of its side inward
|
||||||
|
super + alt + shift + {h,j,k,l}
|
||||||
|
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||||
|
|
||||||
|
# move a floating window
|
||||||
|
super + {Left,Down,Up,Right}
|
||||||
|
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||||
|
|
||||||
|
### Function Keys
|
||||||
|
|
||||||
|
XF86AudioMute
|
||||||
|
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
|
||||||
|
XF86AudioLowerVolume
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
|
||||||
|
XF86AudioRaiseVolume
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
|
||||||
|
XF86AudioMicMute
|
||||||
|
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
|
||||||
|
XF86MonBrightnessDown
|
||||||
|
xbacklight -dec 2
|
||||||
|
|
||||||
|
XF86MonBrightnessUp
|
||||||
|
xbacklight -inc 2
|
||||||
|
|
||||||
|
XF86Display
|
||||||
|
mirror-outputs
|
||||||
|
|
||||||
|
XF86WLAN
|
||||||
|
toggle-wifi
|
||||||
|
|
||||||
|
XF86Tools
|
||||||
|
lxappearance
|
||||||
|
|
||||||
|
XF86Search
|
||||||
|
pamac-manager
|
||||||
|
|
||||||
|
XF86LaunchA
|
||||||
|
rofi -show window
|
||||||
|
|
||||||
|
XF86Explorer
|
||||||
|
thunar
|
280
dot_config/tint2/tint2rc
Normal file
280
dot_config/tint2/tint2rc
Normal file
|
@ -0,0 +1,280 @@
|
||||||
|
#---- Generated by tint2conf aeaf ----
|
||||||
|
# See https://gitlab.com/o9000/tint2/wikis/Configure for
|
||||||
|
# full documentation of the configuration options.
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Gradients
|
||||||
|
|
||||||
|
# Gradient 1: thin film effect
|
||||||
|
gradient = horizontal
|
||||||
|
start_color = #111122 30
|
||||||
|
end_color = #112211 30
|
||||||
|
color_stop = 60 #221111 30
|
||||||
|
|
||||||
|
# Gradient 2: radial glow
|
||||||
|
gradient = radial
|
||||||
|
start_color = #ffffff 20
|
||||||
|
end_color = #ffffff 0
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Backgrounds
|
||||||
|
|
||||||
|
# Background 1: Panel
|
||||||
|
rounded = 0
|
||||||
|
border_width = 0
|
||||||
|
border_sides = TBLR
|
||||||
|
background_color = #323d43 100
|
||||||
|
border_color = #323d43 30
|
||||||
|
background_color_hover = #323d43 70
|
||||||
|
border_color_hover = #323d43 30
|
||||||
|
background_color_pressed = #323d43 100
|
||||||
|
border_color_pressed = #323d43 30
|
||||||
|
|
||||||
|
# Background 2: Default task, Iconified task
|
||||||
|
rounded = 4
|
||||||
|
border_width = 1
|
||||||
|
border_sides = TBLR
|
||||||
|
background_color = #4a555b 20
|
||||||
|
border_color = #525c62 30
|
||||||
|
background_color_hover = #aaaaaa 22
|
||||||
|
border_color_hover = #eaeaea 44
|
||||||
|
background_color_pressed = #555555 4
|
||||||
|
border_color_pressed = #eaeaea 44
|
||||||
|
|
||||||
|
# Background 3: Active task
|
||||||
|
rounded = 4
|
||||||
|
border_width = 1
|
||||||
|
border_sides = TBLR
|
||||||
|
background_color = #7fbbb3 40
|
||||||
|
border_color = #d8caac 40
|
||||||
|
background_color_hover = #aaaaaa 22
|
||||||
|
border_color_hover = #eaeaea 44
|
||||||
|
background_color_pressed = #555555 4
|
||||||
|
border_color_pressed = #eaeaea 44
|
||||||
|
|
||||||
|
# Background 4: Urgent task
|
||||||
|
rounded = 4
|
||||||
|
border_width = 1
|
||||||
|
border_sides = TBLR
|
||||||
|
background_color = #e26c6e 100
|
||||||
|
border_color = #d5b26b 100
|
||||||
|
background_color_hover = #dbbc7f 100
|
||||||
|
border_color_hover = #d5b26b 100
|
||||||
|
background_color_pressed = #555555 4
|
||||||
|
border_color_pressed = #d5b26b 100
|
||||||
|
|
||||||
|
# Background 5: Tooltip
|
||||||
|
rounded = 1
|
||||||
|
border_width = 1
|
||||||
|
border_sides = TBLR
|
||||||
|
background_color = #9bb86f 100
|
||||||
|
border_color = #4a555b 100
|
||||||
|
background_color_hover = #ffffaa 100
|
||||||
|
border_color_hover = #000000 100
|
||||||
|
background_color_pressed = #ffffaa 100
|
||||||
|
border_color_pressed = #000000 100
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Panel
|
||||||
|
panel_items = TEEB:SCP
|
||||||
|
panel_size = 100% 48
|
||||||
|
scale_relative_to_dpi = 216
|
||||||
|
panel_margin = 0 0
|
||||||
|
panel_padding = 2 0 2
|
||||||
|
panel_background_id = 1
|
||||||
|
wm_menu = 1
|
||||||
|
panel_dock = 0
|
||||||
|
panel_position = top center horizontal
|
||||||
|
panel_layer = bottom
|
||||||
|
panel_monitor = all
|
||||||
|
panel_shrink = 0
|
||||||
|
autohide = 0
|
||||||
|
autohide_show_timeout = 0
|
||||||
|
autohide_hide_timeout = 0.5
|
||||||
|
autohide_height = 2
|
||||||
|
strut_policy = follow_size
|
||||||
|
panel_window_name = tint2
|
||||||
|
disable_transparency = 1
|
||||||
|
mouse_effects = 1
|
||||||
|
font_shadow = 0
|
||||||
|
mouse_hover_icon_asb = 100 0 10
|
||||||
|
mouse_pressed_icon_asb = 100 0 0
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Taskbar
|
||||||
|
taskbar_mode = multi_desktop
|
||||||
|
taskbar_hide_if_empty = 1
|
||||||
|
taskbar_padding = 0 0 2
|
||||||
|
taskbar_background_id = 0
|
||||||
|
taskbar_active_background_id = 0
|
||||||
|
taskbar_name = 1
|
||||||
|
taskbar_hide_inactive_tasks = 0
|
||||||
|
taskbar_hide_different_monitor = 0
|
||||||
|
taskbar_hide_different_desktop = 0
|
||||||
|
taskbar_always_show_all_desktop_tasks = 0
|
||||||
|
taskbar_name_padding = 4 2
|
||||||
|
taskbar_name_background_id = 0
|
||||||
|
taskbar_name_active_background_id = 0
|
||||||
|
taskbar_name_font = Hack 18
|
||||||
|
taskbar_name_font_color = #d8caac 100
|
||||||
|
taskbar_name_active_font_color = #d0bf9b 100
|
||||||
|
taskbar_distribute_size = 0
|
||||||
|
taskbar_sort_order = none
|
||||||
|
task_align = left
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Task
|
||||||
|
task_text = 1
|
||||||
|
task_icon = 1
|
||||||
|
task_centered = 1
|
||||||
|
urgent_nb_of_blink = 100000
|
||||||
|
task_maximum_size = 150 35
|
||||||
|
task_padding = 2 4 2
|
||||||
|
task_tooltip = 1
|
||||||
|
task_thumbnail = 0
|
||||||
|
task_thumbnail_size = 210
|
||||||
|
task_font = Hack 10
|
||||||
|
task_font_color = #d8caac 100
|
||||||
|
task_background_id = 2
|
||||||
|
task_active_background_id = 3
|
||||||
|
task_urgent_background_id = 4
|
||||||
|
task_iconified_background_id = 2
|
||||||
|
mouse_left = toggle
|
||||||
|
mouse_middle = none
|
||||||
|
mouse_right = close
|
||||||
|
mouse_scroll_up = prev_task
|
||||||
|
mouse_scroll_down = next_task
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# System tray (notification area)
|
||||||
|
systray_padding = 2 4 4
|
||||||
|
systray_background_id = 0
|
||||||
|
systray_sort = ascending
|
||||||
|
systray_icon_size = 28
|
||||||
|
systray_icon_asb = 100 0 0
|
||||||
|
systray_monitor = 1
|
||||||
|
systray_name_filter =
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Launcher
|
||||||
|
launcher_padding = 2 4 2
|
||||||
|
launcher_background_id = 0
|
||||||
|
launcher_icon_background_id = 0
|
||||||
|
launcher_icon_size = 24
|
||||||
|
launcher_icon_asb = 100 0 0
|
||||||
|
launcher_icon_theme_override = 0
|
||||||
|
startup_notifications = 1
|
||||||
|
launcher_tooltip = 1
|
||||||
|
launcher_item_app = tint2conf.desktop
|
||||||
|
launcher_item_app = firefox.desktop
|
||||||
|
launcher_item_app = iceweasel.desktop
|
||||||
|
launcher_item_app = chromium-browser.desktop
|
||||||
|
launcher_item_app = google-chrome.desktop
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Clock
|
||||||
|
time1_format = %H:%M
|
||||||
|
time2_format = %a %d %b
|
||||||
|
time1_font = Hack 14
|
||||||
|
time2_font = Hack 10
|
||||||
|
time1_timezone =
|
||||||
|
time2_timezone =
|
||||||
|
clock_font_color = #d8caac 100
|
||||||
|
clock_padding = 6 0
|
||||||
|
clock_background_id = 0
|
||||||
|
clock_tooltip = %H:%M %A %d %B %Y
|
||||||
|
clock_tooltip_timezone =
|
||||||
|
clock_lclick_command = gsimplecal
|
||||||
|
clock_rclick_command =
|
||||||
|
clock_mclick_command =
|
||||||
|
clock_uwheel_command =
|
||||||
|
clock_dwheel_command =
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Battery
|
||||||
|
battery_tooltip = 1
|
||||||
|
battery_low_status = 10
|
||||||
|
battery_low_cmd = notify-send "Low battery: 10%"
|
||||||
|
battery_full_cmd = notify-send "Battery done charging"
|
||||||
|
bat1_font = Hack 14
|
||||||
|
battery_font_color = #d8caac 100
|
||||||
|
bat1_format = | Bat: %s %p %t
|
||||||
|
bat2_format =
|
||||||
|
battery_padding = 1 0
|
||||||
|
battery_background_id = 0
|
||||||
|
battery_hide = 101
|
||||||
|
battery_lclick_command =
|
||||||
|
battery_rclick_command =
|
||||||
|
battery_mclick_command =
|
||||||
|
battery_uwheel_command =
|
||||||
|
battery_dwheel_command =
|
||||||
|
ac_connected_cmd = notify-send "AC Power connected"
|
||||||
|
ac_disconnected_cmd = "AC Power disconnected"
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Tooltip
|
||||||
|
tooltip_show_timeout = 0.5
|
||||||
|
tooltip_hide_timeout = 0.1
|
||||||
|
tooltip_padding = 4 4
|
||||||
|
tooltip_background_id = 5
|
||||||
|
tooltip_font_color = #4a555b 100
|
||||||
|
tooltip_font = Hack 14
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Separators
|
||||||
|
|
||||||
|
# Separator1
|
||||||
|
separator = new
|
||||||
|
separator_background_id = 0
|
||||||
|
separator_color = #7fbbb3
|
||||||
|
separator_style = dots
|
||||||
|
separator_size = 4
|
||||||
|
separator_padding = 12 0
|
||||||
|
|
||||||
|
# Separator2
|
||||||
|
separator = new
|
||||||
|
separator_background_id = 0
|
||||||
|
separator_color = #7fbbb3 80
|
||||||
|
separator_style = line
|
||||||
|
separator_size = 2
|
||||||
|
separator_padding = 12 0
|
||||||
|
|
||||||
|
# Separator3
|
||||||
|
separator = new
|
||||||
|
separator_background_id = 0
|
||||||
|
separator_color = #7fbbb3
|
||||||
|
separator_style = empty
|
||||||
|
separator_size = 6
|
||||||
|
separator_padding = 12 0
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Executors
|
||||||
|
|
||||||
|
# Exec1
|
||||||
|
# Note the use of "stdbuf -oL" to force the program to flush the output line by line.
|
||||||
|
execp = new
|
||||||
|
execp_command = free -b -s10| stdbuf -oL awk '/^Mem:/ { printf "Mem: %s / \n", $3 }' | stdbuf -oL numfmt --to=iec-i --field=2 -d' '
|
||||||
|
execp_interval = 10
|
||||||
|
execp_continuous = 1
|
||||||
|
execp_font = Hack 14
|
||||||
|
execp_font_color = #d8caac 100
|
||||||
|
|
||||||
|
# Exec2
|
||||||
|
execp = new
|
||||||
|
execp_command = free -b -s10| stdbuf -oL awk '/^Mem:/ { printf "%s %.0f%%\n", $2, 100 * ($2 - $7) / $2 }' | stdbuf -oL numfmt --to=iec-i --field=1 -d' '
|
||||||
|
execp_interval = 10
|
||||||
|
execp_continuous = 1
|
||||||
|
execp_font = Hack 14
|
||||||
|
execp_font_color = #d8caac 100
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Buttons
|
||||||
|
|
||||||
|
#Button1
|
||||||
|
button = new
|
||||||
|
button_text =
|
||||||
|
button_icon = /usr/share/icons/Papirus-Dark/24x24/actions/exit.svg
|
||||||
|
button_background_id = 0
|
||||||
|
button_lclick_command = rofi -dpi 240 -show power-menu -modi power-menu:/usr/bin/rofi-power-menu
|
||||||
|
button_mclick_command = rofi -dpi 240 -show power-menu -modi power-menu:"/usr/bin/rofi-power-menu --choose suspend/hibernate"
|
||||||
|
button_rclick_command = rofi -dpi 240 -show power-menu -modi power-menu:"/usr/bin/rofi-power-menu --choices reboot/shutdown"
|
|
@ -1,5 +1,5 @@
|
||||||
Net/IconThemeName "Papirus-Dark"
|
Net/IconThemeName "Papirus-Dark"
|
||||||
Net/ThemeName "Materia-dark"
|
Net/ThemeName "vimix-dark-beryl"
|
||||||
Xft/Hinting 1
|
Xft/Hinting 1
|
||||||
Xft/HintStyle "hintfull"
|
Xft/HintStyle "hintfull"
|
||||||
Xft/Antialias 1
|
Xft/Antialias 1
|
0
dot_emacs.d/.keep
Normal file
0
dot_emacs.d/.keep
Normal file
774
dot_emacs.d/init.el
Normal file
774
dot_emacs.d/init.el
Normal file
|
@ -0,0 +1,774 @@
|
||||||
|
; Disable package.el early so it won't start loading packages before init is loaded
|
||||||
|
(setq package-enable-at-startup nil)
|
||||||
|
|
||||||
|
;; No thanks
|
||||||
|
(setq inhibit-startup-message t) ; Disable startup message
|
||||||
|
(scroll-bar-mode -1) ; Disable visible scrollbar
|
||||||
|
(tool-bar-mode -1) ; Disable the toolbar
|
||||||
|
(tooltip-mode -1) ; Disable tooltips
|
||||||
|
(set-fringe-mode 10) ; Add come extra space to the left/right sides
|
||||||
|
(menu-bar-mode -1) ; Disable the menu bar
|
||||||
|
(setq-default custom-file null-device) ; Write customizations not in this file to the null device (AKA stop littering in my init.el)
|
||||||
|
(setq confirm-kill-processes nil) ; Stop asking about running processes on exit
|
||||||
|
|
||||||
|
;; Visible bell
|
||||||
|
(setq visible-bell t)
|
||||||
|
|
||||||
|
; Font - Does nothing if mixed-pitch package is used
|
||||||
|
;(set-face-attribute 'default nil :font "ibm plex mono light" :height 100)
|
||||||
|
|
||||||
|
;; Make ESC quit prompts
|
||||||
|
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||||
|
|
||||||
|
;; paren/bracket pairs
|
||||||
|
(show-paren-mode t)
|
||||||
|
(setq-default show-paren-style 'parenthesis)
|
||||||
|
(electric-pair-mode 1)
|
||||||
|
|
||||||
|
;; Profile emacs startup
|
||||||
|
(add-hook 'emacs-startup-hook
|
||||||
|
(lambda ()
|
||||||
|
(message "*** Emacs loaded in %s with %d garbage collections."
|
||||||
|
(format "%.2f seconds"
|
||||||
|
(float-time
|
||||||
|
(time-subtract after-init-time before-init-time)))
|
||||||
|
gcs-done)))
|
||||||
|
|
||||||
|
;; Change the user-emacs-directory to keep ~/.emacs.d clean
|
||||||
|
(setq user-emacs-directory (expand-file-name "~/.cache/emacs/")
|
||||||
|
url-history-file (expand-file-name "url/history" user-emacs-directory))
|
||||||
|
|
||||||
|
;; Store autosaves in cache dir instead of littering all over the filesystem
|
||||||
|
(setq auto-save-file-name-transforms
|
||||||
|
`((".*" "~/.cache/emacs/autosave/" t)))
|
||||||
|
|
||||||
|
;; No annoying Windows errors
|
||||||
|
(set-default-coding-systems 'utf-8)
|
||||||
|
|
||||||
|
;; Disable suspend-frame shortcut
|
||||||
|
(define-key global-map "\C-z" nil)
|
||||||
|
|
||||||
|
;; More reasonable keybinds for resizing windows
|
||||||
|
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally)
|
||||||
|
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally)
|
||||||
|
(global-set-key (kbd "S-C-<down>") 'shrink-window)
|
||||||
|
(global-set-key (kbd "S-C-<up>") 'enlarge-window)
|
||||||
|
|
||||||
|
;; scrolling
|
||||||
|
(setq mouse-wheel-scroll-amount '(4 ((shift) . 1))) ; 1: lines to scroll, 2: while holding shift
|
||||||
|
(setq mouse-wheel-progressive-speed nil) ; acceleration
|
||||||
|
(setq mouse-wheel-follow-mouse 't) ; scroll window under cursor
|
||||||
|
(setq scroll-step 1) ; keyboard scrolling
|
||||||
|
|
||||||
|
;; Tabs
|
||||||
|
(setq-default indent-tabs-mode nil)
|
||||||
|
(setq-default tab-width 4)
|
||||||
|
(setq indent-line-function 'insert-tab)
|
||||||
|
|
||||||
|
;; Recent files
|
||||||
|
(recentf-mode 1)
|
||||||
|
(setq recentf-max-menu-items 25)
|
||||||
|
(setq recentf-max-saved-items 25)
|
||||||
|
|
||||||
|
;; Line numbers
|
||||||
|
(setq column-number-mode t)
|
||||||
|
(dolist (mode '(text-mode-hook
|
||||||
|
prog-mode-hook
|
||||||
|
conf-mode-hook))
|
||||||
|
(add-hook mode (lambda () (display-line-numbers-mode 1))))
|
||||||
|
|
||||||
|
;; Show vertical line at column 80 in prog-mode
|
||||||
|
(setq-default fill-column 80)
|
||||||
|
(add-hook 'prog-mode-hook #'display-fill-column-indicator-mode)
|
||||||
|
|
||||||
|
;; Install and load straight.el
|
||||||
|
(defvar bootstrap-version)
|
||||||
|
(let ((bootstrap-file
|
||||||
|
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
||||||
|
(bootstrap-version 5))
|
||||||
|
(unless (file-exists-p bootstrap-file)
|
||||||
|
(with-current-buffer
|
||||||
|
(url-retrieve-synchronously
|
||||||
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
||||||
|
'silent 'inhibit-cookies)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(eval-print-last-sexp)))
|
||||||
|
(load bootstrap-file nil 'nomessage))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;; Not needed when using straight.el ;;;;;;;;;;;;;;
|
||||||
|
;; Initialize package sources
|
||||||
|
;(require 'package)
|
||||||
|
|
||||||
|
;(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||||
|
; ("org" . "https://orgmode.org/elpa/")
|
||||||
|
; ("elpa" . "https://elpa.gnu.org/packages/")))
|
||||||
|
|
||||||
|
;(package-initialize)
|
||||||
|
;(unless package-archive-contents
|
||||||
|
; (package-refresh-contents))
|
||||||
|
|
||||||
|
;; Initialize use-package on non-Linux platforms
|
||||||
|
;(unless (package-installed-p 'use-package)
|
||||||
|
; (package-install 'use-package))
|
||||||
|
|
||||||
|
;(require 'use-package)
|
||||||
|
;(setq use-package-always-ensure t)
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
;; Install use-package
|
||||||
|
(straight-use-package 'use-package)
|
||||||
|
|
||||||
|
;; Make use-package use straight.el
|
||||||
|
(use-package straight
|
||||||
|
:custom (straight-use-package-by-default t))
|
||||||
|
|
||||||
|
;; Theme
|
||||||
|
|
||||||
|
(setq custom-safe-themes t)
|
||||||
|
|
||||||
|
;; (use-package everforest
|
||||||
|
;; :straight (:type git :repo "https://git.sr.ht/~theorytoe/everforest-theme"))
|
||||||
|
|
||||||
|
(add-to-list 'custom-theme-load-path "~/.cache/emacs/custom/everforest-theme")
|
||||||
|
(load-theme 'everforest-hard-dark t)
|
||||||
|
|
||||||
|
;; Help distinguish work buffers from others like sidebars and terminal
|
||||||
|
;; (use-package solaire-mode
|
||||||
|
;; :init
|
||||||
|
;; (solaire-global-mode t))
|
||||||
|
|
||||||
|
;; Icons
|
||||||
|
(use-package all-the-icons)
|
||||||
|
|
||||||
|
;; Modeline
|
||||||
|
|
||||||
|
(use-package minions
|
||||||
|
:hook (doom-modeline-mode . minions-mode)
|
||||||
|
(simple-modeline-mode . minions-mode))
|
||||||
|
|
||||||
|
(use-package doom-modeline
|
||||||
|
:init (doom-modeline-mode)
|
||||||
|
:custom
|
||||||
|
(doom-modeline-height 30)
|
||||||
|
(doom-modeline-bar-width .75)
|
||||||
|
(doom-modeline-window-width-limit fill-column)
|
||||||
|
(doom-modeline-lsp t)
|
||||||
|
(doom-modeline-minor-modes t)
|
||||||
|
(doom-modeline-persp-name nil)
|
||||||
|
(doom-modeline-buffer-file-name-style 'truncate-upto-project)
|
||||||
|
(doom-modeline-major-mode-icon t)
|
||||||
|
(doom-modeline-major-mode-color-icon t)
|
||||||
|
(doom-modeline-enable-word-count t)
|
||||||
|
(doom-modeline-env-version t)
|
||||||
|
(doom-modeline-env-load-string "..."))
|
||||||
|
|
||||||
|
;; Don't remind me about some minor modes
|
||||||
|
(use-package diminish)
|
||||||
|
|
||||||
|
;; Automatically set paths to the new user-emacs-directory
|
||||||
|
(use-package no-littering)
|
||||||
|
|
||||||
|
;; Automatically clean whitespace
|
||||||
|
(use-package ws-butler
|
||||||
|
:hook ((text-mode . ws-butler-mode)
|
||||||
|
(prog-mode . ws-butler-mode)))
|
||||||
|
|
||||||
|
;; Overview of keybindings available based on prefix keys
|
||||||
|
(use-package which-key
|
||||||
|
:init (which-key-mode)
|
||||||
|
:config
|
||||||
|
(setq which-key-idle-delay 0.3))
|
||||||
|
|
||||||
|
;; Save history over restarts
|
||||||
|
(use-package savehist
|
||||||
|
:init
|
||||||
|
(savehist-mode))
|
||||||
|
|
||||||
|
;; Completion with vertico/consult
|
||||||
|
|
||||||
|
(use-package vertico
|
||||||
|
:init
|
||||||
|
(vertico-mode)
|
||||||
|
|
||||||
|
;; Different scroll margin
|
||||||
|
;; (set vertico-scroll-margin 0)
|
||||||
|
|
||||||
|
;; Show more candidates
|
||||||
|
;; (setq vertico-count 20)
|
||||||
|
|
||||||
|
;; Grow and shrink the Vertico minibuffer
|
||||||
|
;; (setq vertico-resize t)
|
||||||
|
|
||||||
|
;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
|
||||||
|
;; (setq vertico-cycle t)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package emacs
|
||||||
|
:init
|
||||||
|
;; Add prompt indicator to `completing-read-multiple'.
|
||||||
|
(defun crm-indicator (args)
|
||||||
|
(cons (format "[CRM%s] %s"
|
||||||
|
(replace-regexp-in-string
|
||||||
|
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
||||||
|
crm-separator)
|
||||||
|
(car args))
|
||||||
|
(cdr args)))
|
||||||
|
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
||||||
|
;; Do not allow the cursor in the minibuffer prompt
|
||||||
|
(setq minibuffer-prompt-properties
|
||||||
|
'(read-only t cursor-intangible t face minibuffer-prompt))
|
||||||
|
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
||||||
|
;; Emacs 28: Hide commands in M-x which do not work in the current mode.
|
||||||
|
;; Vertico commands are hidden in normal buffers.
|
||||||
|
(setq read-extended-command-predicate
|
||||||
|
#'command-completion-default-include-p)
|
||||||
|
(setq enable-recursive-minibuffers t))
|
||||||
|
|
||||||
|
(use-package consult
|
||||||
|
:bind (;; C-c bindings (mode-specific-map)
|
||||||
|
("C-c h" . consult-history)
|
||||||
|
("C-c m" . consult-mode-command)
|
||||||
|
("C-c k" . consult-kmacro)
|
||||||
|
;; C-x bindings (ctl-x-map)
|
||||||
|
("C-x C-r" . consult-recent-file)
|
||||||
|
("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
|
||||||
|
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
|
||||||
|
("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
|
||||||
|
("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
|
||||||
|
("C-x r b" . consult-bookmark) ;; orig. bookmark-jump
|
||||||
|
("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer
|
||||||
|
;; Custom M-# bindings for fast register access
|
||||||
|
("M-#" . consult-register-load)
|
||||||
|
("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
|
||||||
|
("C-M-#" . consult-register)
|
||||||
|
;; Other custom bindings
|
||||||
|
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
||||||
|
("<help> a" . consult-apropos) ;; orig. apropos-command
|
||||||
|
;; M-g bindings (goto-map)
|
||||||
|
("M-g e" . consult-compile-error)
|
||||||
|
;; ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
|
||||||
|
("M-g f" . consult-flycheck)
|
||||||
|
("M-g g" . consult-goto-line) ;; orig. goto-line
|
||||||
|
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
||||||
|
("M-g o" . consult-outline) ;; Alternative: consult-org-heading
|
||||||
|
("M-g m" . consult-mark)
|
||||||
|
("M-g k" . consult-global-mark)
|
||||||
|
("M-g i" . consult-imenu)
|
||||||
|
("M-g I" . consult-imenu-multi)
|
||||||
|
;; M-s bindings (search-map)
|
||||||
|
("M-s d" . consult-find)
|
||||||
|
("M-s D" . consult-locate)
|
||||||
|
("M-s g" . consult-grep)
|
||||||
|
("M-s G" . consult-git-grep)
|
||||||
|
("M-s r" . consult-ripgrep)
|
||||||
|
("M-s l" . consult-line)
|
||||||
|
("M-s L" . consult-line-multi)
|
||||||
|
("M-s m" . consult-multi-occur)
|
||||||
|
("M-s k" . consult-keep-lines)
|
||||||
|
("M-s u" . consult-focus-lines)
|
||||||
|
;; Isearch integration
|
||||||
|
("M-s e" . consult-isearch-history)
|
||||||
|
:map isearch-mode-map
|
||||||
|
("M-e" . consult-isearch-history) ;; orig. isearch-edit-string
|
||||||
|
("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string
|
||||||
|
("M-s l" . consult-line) ;; needed by consult-line to detect isearch
|
||||||
|
("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch
|
||||||
|
;; Minibuffer history
|
||||||
|
:map minibuffer-local-map
|
||||||
|
("M-s" . consult-history) ;; orig. next-matching-history-element
|
||||||
|
("M-r" . consult-history)) ;; orig. previous-matching-history-element
|
||||||
|
|
||||||
|
;; Enable automatic preview at point in the *Completions* buffer. This is
|
||||||
|
;; relevant when you use the default completion UI.
|
||||||
|
:hook (completion-list-mode . consult-preview-at-point-mode)
|
||||||
|
|
||||||
|
;; The :init configuration is always executed (Not lazy)
|
||||||
|
:init
|
||||||
|
|
||||||
|
;; Optionally configure the register formatting. This improves the register
|
||||||
|
;; preview for `consult-register', `consult-register-load',
|
||||||
|
;; `consult-register-store' and the Emacs built-ins.
|
||||||
|
(setq register-preview-delay 0.5
|
||||||
|
register-preview-function #'consult-register-format)
|
||||||
|
|
||||||
|
;; Optionally tweak the register preview window.
|
||||||
|
;; This adds thin lines, sorting and hides the mode line of the window.
|
||||||
|
(advice-add #'register-preview :override #'consult-register-window)
|
||||||
|
|
||||||
|
;; Use Consult to select xref locations with preview
|
||||||
|
(setq xref-show-xrefs-function #'consult-xref
|
||||||
|
xref-show-definitions-function #'consult-xref)
|
||||||
|
|
||||||
|
;; Configure other variables and modes in the :config section,
|
||||||
|
;; after lazily loading the package.
|
||||||
|
:config
|
||||||
|
|
||||||
|
;; Optionally configure preview. The default value
|
||||||
|
;; is 'any, such that any key triggers the preview.
|
||||||
|
;; (setq consult-preview-key 'any)
|
||||||
|
(setq consult-preview-key (kbd "M-."))
|
||||||
|
;; (setq consult-preview-key (list (kbd "<S-down>") (kbd "<S-up>")))
|
||||||
|
;; For some commands and buffer sources it is useful to configure the
|
||||||
|
;; :preview-key on a per-command basis using the `consult-customize' macro.
|
||||||
|
(consult-customize
|
||||||
|
consult-theme :preview-key '(:debounce 0.2 any)
|
||||||
|
consult-ripgrep consult-git-grep consult-grep
|
||||||
|
consult-bookmark consult-recent-file consult-xref
|
||||||
|
consult--source-bookmark consult--source-file-register
|
||||||
|
consult--source-recent-file consult--source-project-recent-file
|
||||||
|
;; :preview-key (kbd "M-.")
|
||||||
|
:preview-key '(:debounce 0.4 any))
|
||||||
|
|
||||||
|
;; Optionally configure the narrowing key.
|
||||||
|
;; Both < and C-+ work reasonably well.
|
||||||
|
(setq consult-narrow-key "<") ;; (kbd "C-+")
|
||||||
|
|
||||||
|
;; Optionally make narrowing help available in the minibuffer.
|
||||||
|
;; You may want to use `embark-prefix-help-command' or which-key instead.
|
||||||
|
;; (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help)
|
||||||
|
|
||||||
|
;; By default `consult-project-function' uses `project-root' from project.el.
|
||||||
|
;; Optionally configure a different project root function.
|
||||||
|
;; There are multiple reasonable alternatives to chose from.
|
||||||
|
;;;; 1. project.el (the default)
|
||||||
|
;; (setq consult-project-function #'consult--default-project--function)
|
||||||
|
;;;; 2. projectile.el (projectile-project-root)
|
||||||
|
;; (autoload 'projectile-project-root "projectile")
|
||||||
|
;; (setq consult-project-function (lambda (_) (projectile-project-root)))
|
||||||
|
;;;; 3. vc.el (vc-root-dir)
|
||||||
|
;; (setq consult-project-function (lambda (_) (vc-root-dir)))
|
||||||
|
;;;; 4. locate-dominating-file
|
||||||
|
;; (setq consult-project-function (lambda (_) (locate-dominating-file "." ".git")))
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package consult-flycheck)
|
||||||
|
|
||||||
|
(use-package consult-git-log-grep
|
||||||
|
:custom
|
||||||
|
(consult-git-log-grep-open-function #'magit-show-commit))
|
||||||
|
|
||||||
|
(use-package consult-company
|
||||||
|
:bind
|
||||||
|
(:map company-mode-map
|
||||||
|
([remap completion-at-point] . consult-company)))
|
||||||
|
|
||||||
|
(use-package consult-lsp
|
||||||
|
:bind
|
||||||
|
(:map lsp-mode-map
|
||||||
|
([remap xref-find-apropos] . consult-lsp-symbols)))
|
||||||
|
|
||||||
|
;; (use-package consult-projectile)
|
||||||
|
|
||||||
|
(use-package consult-yasnippet)
|
||||||
|
|
||||||
|
;; Alternate completion style
|
||||||
|
|
||||||
|
(use-package orderless
|
||||||
|
:init
|
||||||
|
;; Configure a custom style dispatcher (see the Consult wiki)
|
||||||
|
;; (setq orderless-style-dispatchers '(+orderless-dispatch)
|
||||||
|
;; orderless-component-separator #'orderless-escapable-split-on-space)
|
||||||
|
(setq completion-styles '(orderless basic)
|
||||||
|
completion-category-defaults nil
|
||||||
|
completion-category-overrides '((file (styles partial-completion)))))
|
||||||
|
|
||||||
|
;; Contextual actions
|
||||||
|
|
||||||
|
(use-package marginalia
|
||||||
|
:config
|
||||||
|
(marginalia-mode))
|
||||||
|
|
||||||
|
(use-package embark
|
||||||
|
:bind
|
||||||
|
(("C-." . embark-act) ;; pick some comfortable binding
|
||||||
|
("C-;" . embark-dwim) ;; good alternative: M-.
|
||||||
|
("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'
|
||||||
|
:init
|
||||||
|
;; Optionally replace the key help with a completing-read interface
|
||||||
|
(setq prefix-help-command #'embark-prefix-help-command)
|
||||||
|
:config
|
||||||
|
;; Hide the mode line of the Embark live/completions buffers
|
||||||
|
(add-to-list 'display-buffer-alist
|
||||||
|
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
|
||||||
|
nil
|
||||||
|
(window-parameters (mode-line-format . none)))))
|
||||||
|
|
||||||
|
(use-package embark-consult
|
||||||
|
:hook
|
||||||
|
(embark-collect-mode . consult-preview-at-point-mode))
|
||||||
|
|
||||||
|
;; Org-mode
|
||||||
|
|
||||||
|
; No line numbers in org-mode
|
||||||
|
(dolist (mode '(org-mode-hook))
|
||||||
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||||
|
|
||||||
|
(setq org-startup-indented t ; Indentation
|
||||||
|
org-pretty-entities t ; Rich text/Special chars
|
||||||
|
org-hide-emphasis-markers t ; Hide markup - see org-appear
|
||||||
|
org-startup-with-inline-images t ; Image previews
|
||||||
|
org-image-actual-width '(300))
|
||||||
|
|
||||||
|
(use-package org-appear
|
||||||
|
:hook (org-mode . org-appear-mode))
|
||||||
|
|
||||||
|
(use-package mixed-pitch
|
||||||
|
:hook
|
||||||
|
(text-mode . mixed-pitch-mode)
|
||||||
|
:config
|
||||||
|
(set-face-attribute 'default nil :font "IBM Plex Mono Light" :height 105)
|
||||||
|
(set-face-attribute 'fixed-pitch nil :font "IBM Plex Mono Light")
|
||||||
|
(set-face-attribute 'variable-pitch nil :font "DejaVu Sans"))
|
||||||
|
;(add-hook 'mixed-pitch-mode-hook #'solaire-mode-reset)
|
||||||
|
|
||||||
|
(use-package org-superstar
|
||||||
|
:hook
|
||||||
|
(org-mode . org-superstar-mode)
|
||||||
|
:config
|
||||||
|
(setq org-superstar-special-todo-items t))
|
||||||
|
|
||||||
|
;; LSP
|
||||||
|
|
||||||
|
(use-package lsp-mode
|
||||||
|
:init
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
:commands (lsp lsp-deferred)
|
||||||
|
:hook
|
||||||
|
((c-mode . lsp)
|
||||||
|
(c++-mode . lsp)
|
||||||
|
(go-mode . lsp)
|
||||||
|
(java-mode . lsp)
|
||||||
|
(js-mode . lsp)
|
||||||
|
(latex-mode . lsp)
|
||||||
|
(python-mode . lsp)
|
||||||
|
(rust-mode . lsp)
|
||||||
|
(tex-mode . lsp)
|
||||||
|
(typescript-mode . lsp)
|
||||||
|
(web-mode . lsp)
|
||||||
|
(zig-mode . lsp)
|
||||||
|
(lsp-mode . lsp-enable-which-key-integration))
|
||||||
|
:custom
|
||||||
|
(lsp-eldoc-render-all nil)
|
||||||
|
(lsp-idle-delay 0.6)
|
||||||
|
;; (lsp-rust-analyzer-cargo-watch-command "clippy")
|
||||||
|
;; (lsp-rust-analyzer-server-display-inlay-hints t)
|
||||||
|
;; (lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
||||||
|
;; (lsp-rust-analyzer-display-chaining-hints t)
|
||||||
|
;; (lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
||||||
|
;; (lsp-rust-analyzer-display-closure-return-type-hints t)
|
||||||
|
;; (lsp-rust-analyzer-display-parameter-hints nil)
|
||||||
|
;; (lsp-rust-analyzer-display-reborrow-hints nil)
|
||||||
|
:config
|
||||||
|
(setq lsp-prefer-flymake nil)) ; prefer lsp-ui (flycheck) to flymake
|
||||||
|
; (setq lsp-disabled-clients '(clangd))) ; prefer ccls to clangd
|
||||||
|
; :bind
|
||||||
|
; (:map lsp-mode-map
|
||||||
|
; ("TAB" . completion-at-point)))
|
||||||
|
|
||||||
|
(use-package lsp-ui
|
||||||
|
:requires lsp-mode flycheck
|
||||||
|
:hook (lsp-mode . lsp-ui-mode)
|
||||||
|
:commands lsp-ui-mode
|
||||||
|
:config
|
||||||
|
(setq lsp-ui-doc-enable t)
|
||||||
|
(setq lsp-ui-doc-use-childframe t)
|
||||||
|
(setq lsp-ui-doc-position 'bottom-and-right)
|
||||||
|
(setq lsp-ui-doc-include-signature t)
|
||||||
|
(setq lsp-ui-sideline-enable t)
|
||||||
|
(setq lsp-ui-sideline-show-hover t)
|
||||||
|
(setq lsp-ui-flycheck-enable t)
|
||||||
|
(setq lsp-ui-flycheck-list-position 'right)
|
||||||
|
(setq lsp-ui-flycheck-live-reporting t)
|
||||||
|
(setq lsp-ui-peek-enable t)
|
||||||
|
(setq lsp-ui-peek-list-width 60)
|
||||||
|
(setq lsp-ui-peek-peek-height 25)
|
||||||
|
(lsp-ui-doc-show))
|
||||||
|
|
||||||
|
|
||||||
|
;; Text completion
|
||||||
|
|
||||||
|
(use-package company
|
||||||
|
:config
|
||||||
|
(global-company-mode 1)
|
||||||
|
(setq company-global-modes '(not gud-mode))
|
||||||
|
(setq company-global-modes '(not comint-mode))
|
||||||
|
:custom
|
||||||
|
(company-idle-delay 0)
|
||||||
|
(company-minimum-prefix-length 1)
|
||||||
|
(company-tooltip-align-annotations t)
|
||||||
|
:bind
|
||||||
|
(:map company-active-map
|
||||||
|
("RET" . nil)
|
||||||
|
("[return]" . nil)
|
||||||
|
("TAB" . company-complete-selection)
|
||||||
|
("<tab>" . company-complete-selection)
|
||||||
|
("C-n" . company-select-next)
|
||||||
|
("C-p" . company-select-previous)))
|
||||||
|
|
||||||
|
;; Debugging
|
||||||
|
|
||||||
|
(use-package dap-mode
|
||||||
|
:after lsp-mode
|
||||||
|
:commands dap-debug
|
||||||
|
:config
|
||||||
|
(dap-ui-mode 1)
|
||||||
|
(dap-tooltip-mode 1)
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'cl-lib))
|
||||||
|
(require 'dap-python)
|
||||||
|
;(require 'dap-node)
|
||||||
|
(require 'dap-lldb)
|
||||||
|
(require 'dap-gdb-lldb)
|
||||||
|
(dap-gdb-lldb-setup)
|
||||||
|
(dap-register-debug-template
|
||||||
|
"Rust :: LLDB Run Configuration"
|
||||||
|
(list :type "lldb"
|
||||||
|
:request "launch"
|
||||||
|
:name "LLDB::Run"
|
||||||
|
:gdbpath "rust-lldb"))
|
||||||
|
:bind
|
||||||
|
(:map dap-mode-map
|
||||||
|
("<f5>" . dap-debug)
|
||||||
|
("<f10>" . dap-next)
|
||||||
|
("<f11>" . dap-step-in)
|
||||||
|
("S-<f5>" . dap-disconnect)
|
||||||
|
("C-S-<f5>" . dap-debug-restart)))
|
||||||
|
|
||||||
|
(use-package realgud)
|
||||||
|
|
||||||
|
(use-package realgud-lldb)
|
||||||
|
|
||||||
|
;; Treemacs
|
||||||
|
(use-package treemacs
|
||||||
|
:bind
|
||||||
|
(:map global-map
|
||||||
|
("M-0" . treemacs-select-window)
|
||||||
|
("C-x t 1" . treemacs-delete-other-windows)
|
||||||
|
("C-x t t" . treemacs)
|
||||||
|
("C-x t B" . treemacs-bookmark)
|
||||||
|
("C-x t C-t" . treemacs-find-file)
|
||||||
|
("C-x t M-t" . treemacs-find-tag)))
|
||||||
|
|
||||||
|
(use-package lsp-treemacs
|
||||||
|
:config
|
||||||
|
(lsp-treemacs-sync-mode 1))
|
||||||
|
|
||||||
|
;; Syntax checking
|
||||||
|
(use-package flycheck
|
||||||
|
:hook (lsp-mode . flycheck-mode)
|
||||||
|
:config
|
||||||
|
(setq flycheck-python-flake8-executable "flake8"))
|
||||||
|
|
||||||
|
;; Git
|
||||||
|
(use-package magit
|
||||||
|
:bind ("C-M-;" . magit-status)
|
||||||
|
:commands (magit-status magit-get-current-branch)
|
||||||
|
:custom
|
||||||
|
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
|
||||||
|
|
||||||
|
;;; Languages/Tools
|
||||||
|
|
||||||
|
;; Highlighting/Formatting
|
||||||
|
|
||||||
|
(use-package apheleia
|
||||||
|
:init
|
||||||
|
(apheleia-global-mode +1))
|
||||||
|
|
||||||
|
(use-package tree-sitter
|
||||||
|
:config
|
||||||
|
(global-tree-sitter-mode)
|
||||||
|
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
|
||||||
|
|
||||||
|
(use-package tree-sitter-langs
|
||||||
|
:after tree-sitter)
|
||||||
|
|
||||||
|
;; C/C++
|
||||||
|
|
||||||
|
(setq dap-lldb-debug-program '("/usr/bin/lldb-vscode"))
|
||||||
|
(setq-default c-default-style "k&r")
|
||||||
|
(setq-default c-basic-offset 2)
|
||||||
|
|
||||||
|
;; (use-package ccls
|
||||||
|
;; :hook ((c-mode c++-mode objc-mode cuda-mode) .
|
||||||
|
;; (lambda () (require 'ccls) (lsp))))
|
||||||
|
|
||||||
|
;(use-package modern-cpp-font-lock
|
||||||
|
; :config
|
||||||
|
; (modern-c++-font-lock-global-mode))
|
||||||
|
|
||||||
|
;; Golang
|
||||||
|
|
||||||
|
;; (use-package go-mode
|
||||||
|
;; :config
|
||||||
|
;; (add-hook 'before-save-hook #'lsp-organize-imports))
|
||||||
|
|
||||||
|
;; Java
|
||||||
|
|
||||||
|
;(use-package lsp-java)
|
||||||
|
|
||||||
|
;; JavaScript/TypeScript, HTML, CSS
|
||||||
|
|
||||||
|
(setq css-indent-level 2)
|
||||||
|
(setq css-indent-offset 2)
|
||||||
|
(setq js-indent-level 2)
|
||||||
|
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.mjs\\'" . js-mode))
|
||||||
|
|
||||||
|
(use-package js2-mode
|
||||||
|
:config
|
||||||
|
(add-to-list 'interpreter-mode-alist '("#!/usr/bin/env node" . js2-mode))
|
||||||
|
;(setq js2-strict-missing-semi-warning t)
|
||||||
|
(setq js2-mode-show-strict-warnings t)
|
||||||
|
:hook (js-mode . js2-minor-mode))
|
||||||
|
|
||||||
|
(use-package typescript-mode
|
||||||
|
:config
|
||||||
|
(setq typescript-indent-level 2)
|
||||||
|
:mode ("\\.ts\\'" . typescript-mode)
|
||||||
|
("\\.tsx\\'" . typescript-mode))
|
||||||
|
|
||||||
|
;; (use-package restclient
|
||||||
|
;; :init
|
||||||
|
;; (use-package company-restclient)
|
||||||
|
;; :mode ("\\.http\\'" . restclient-mode))
|
||||||
|
|
||||||
|
(use-package rainbow-mode
|
||||||
|
:hook
|
||||||
|
((js-mode . rainbow-mode)
|
||||||
|
(typescript-mode . rainbow-mode)
|
||||||
|
(web-mode . rainbow-mode)))
|
||||||
|
|
||||||
|
;; (use-package skewer-mode
|
||||||
|
;; :init
|
||||||
|
;; (setq httpd-port 8080)
|
||||||
|
;; :hook
|
||||||
|
;; (('js-mode-hook 'skewer-mode)
|
||||||
|
;; ('css-mode-hook 'skewer-css-mode)
|
||||||
|
;; ('html-mode-hook 'skewer-html-mode)))
|
||||||
|
|
||||||
|
;; (use-package skewer-reload-stylesheets
|
||||||
|
;; :hook
|
||||||
|
;; (('css-mode-hook 'skewer-reload-stylesheets-start-editing)
|
||||||
|
;; ('scss-mode-hook 'skewer-reload-stylesheets-start-editing)))
|
||||||
|
|
||||||
|
;; (use-package simple-httpd)
|
||||||
|
|
||||||
|
(use-package web-mode
|
||||||
|
:config
|
||||||
|
(setq web-mode-code-indent-offset 2)
|
||||||
|
(setq web-mode-markup-indent-offset 2)
|
||||||
|
(setq web-mode-attribute-indent-offset 2)
|
||||||
|
:mode
|
||||||
|
(("\\.phtml\\'" . web-mode)
|
||||||
|
("\\.tpl\\.php\\'" . web-mode)
|
||||||
|
("\\.jsp\\'" . web-mode)
|
||||||
|
("\\.as[cp]x\\'" . web-mode)
|
||||||
|
("\\.erb\\'" . web-mode)
|
||||||
|
("\\.mustache\\'" . web-mode)
|
||||||
|
("\\.djhtml\\'" . web-mode)
|
||||||
|
("\\.jst.ejs\\'" . web-mode)
|
||||||
|
("\\.html?\\'" . web-mode)))
|
||||||
|
|
||||||
|
(use-package jsdoc
|
||||||
|
:straight (jsdoc :type git :host github :repo "isamert/jsdoc.el")
|
||||||
|
:bind ("C-c C-n" . jsdoc))
|
||||||
|
|
||||||
|
;; LaTeX
|
||||||
|
|
||||||
|
;; (use-package lsp-latex)
|
||||||
|
|
||||||
|
;; (setq lsp-tex-server 'digestif)
|
||||||
|
|
||||||
|
|
||||||
|
;; Protocol Buffers
|
||||||
|
|
||||||
|
;; (use-package protobuf-mode)
|
||||||
|
|
||||||
|
;; Python
|
||||||
|
|
||||||
|
(setq dap-python-debugger 'debugpy)
|
||||||
|
|
||||||
|
(use-package lsp-pyright
|
||||||
|
:hook (python-mode . (lambda ()
|
||||||
|
(require 'lsp-pyright)
|
||||||
|
(lsp)))) ; or lsp-deferred
|
||||||
|
|
||||||
|
(use-package numpydoc
|
||||||
|
:after python
|
||||||
|
:bind (:map python-mode-map
|
||||||
|
("C-c C-n" . numpydoc-generate))
|
||||||
|
:config
|
||||||
|
(setq numpydoc-insert-examples-block nil))
|
||||||
|
|
||||||
|
(use-package conda
|
||||||
|
:init
|
||||||
|
(setq conda-anaconda-home (expand-file-name "/opt/miniconda3"))
|
||||||
|
(setq conda-env-home-directory (expand-file-name "~/.conda/envs"))
|
||||||
|
(conda-env-initialize-interactive-shells)
|
||||||
|
;(conda-env-autoactivate-mode)
|
||||||
|
:hook
|
||||||
|
('find-file-hook . (lambda ()
|
||||||
|
(when (bound-and-true-p conda-project-env-path)
|
||||||
|
(conda-env-activate-for-buffer)))))
|
||||||
|
|
||||||
|
;; Rust
|
||||||
|
|
||||||
|
(use-package rustic
|
||||||
|
:ensure
|
||||||
|
:bind (:map rustic-mode-map
|
||||||
|
("M-j" . lsp-ui-imenu)
|
||||||
|
("M-?" . lsp-find-references)
|
||||||
|
("C-c C-c l" . flycheck-list-errors)
|
||||||
|
("C-c C-c a" . lsp-execute-code-action)
|
||||||
|
("C-c C-c r" . lsp-rename)
|
||||||
|
("C-c C-c q" . lsp-workspace-restart)
|
||||||
|
("C-c C-c Q" . lsp-workspace-shutdown)
|
||||||
|
("C-c C-c s" . lsp-rust-analyzer-status)
|
||||||
|
("C-c C-c e" . lsp-rust-analyzer-expand-macro)
|
||||||
|
("C-c C-c d" . dap-hydra)
|
||||||
|
("C-c C-c h" . lsp-ui-doc-glance)))
|
||||||
|
:config
|
||||||
|
;; uncomment for less flashiness
|
||||||
|
;; (setq lsp-eldoc-hook nil)
|
||||||
|
;; (setq lsp-enable-symbol-highlighting nil)
|
||||||
|
;; (setq lsp-signature-auto-activate nil)
|
||||||
|
|
||||||
|
;; comment to disable rustfmt on save
|
||||||
|
;; (add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
||||||
|
|
||||||
|
;; (defun rk/rustic-mode-hook ()
|
||||||
|
;; ;; so that run C-c C-c C-r works without having to confirm, but don't try to
|
||||||
|
;; ;; save rust buffers that are not file visiting. Once
|
||||||
|
;; ;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
|
||||||
|
;; ;; no longer be necessary.
|
||||||
|
;; (when buffer-file-name
|
||||||
|
;; (setq-local buffer-save-without-query t))
|
||||||
|
;; (add-hook 'before-save-hook 'lsp-format-buffer nil t))
|
||||||
|
|
||||||
|
;; TOML config files
|
||||||
|
|
||||||
|
(use-package toml-mode)
|
||||||
|
|
||||||
|
;; Zig
|
||||||
|
|
||||||
|
;(use-package zig-mode
|
||||||
|
; :custom (zig-format-on-save nil)
|
||||||
|
; :config
|
||||||
|
; (add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
||||||
|
; (make-lsp-client
|
||||||
|
; :new-connection (lsp-stdio-connection "/usr/bin/zls")
|
||||||
|
; :major-modes '(zig-mode)
|
||||||
|
; :server-id 'zls))
|
||||||
|
|
||||||
|
;; Templating
|
||||||
|
(use-package yasnippet
|
||||||
|
:bind
|
||||||
|
("C-c y s" . yas-insert-snippet)
|
||||||
|
("C-c y v" . yas-visit-snippet-file)
|
||||||
|
:config
|
||||||
|
(add-to-list 'yas-snippet-dirs "~/.emacs.d/snippets")
|
||||||
|
(yas-reload-all)
|
||||||
|
(yas-global-mode))
|
||||||
|
|
||||||
|
(use-package yasnippet-snippets)
|
||||||
|
;;; End init.el
|
11
dot_gitconfig
Normal file
11
dot_gitconfig
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[user]
|
||||||
|
name = Andrew Scott
|
||||||
|
email = git@andyscott.me
|
||||||
|
signingKey = 7CD5A5977E4931C1
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
[commit]
|
||||||
|
pgpsign = true
|
||||||
|
gpgsign = true
|
||||||
|
[pull]
|
||||||
|
rebase = false
|
0
bin/mirror-outputs → dot_local/bin/executable_mirror-outputs
Executable file → Normal file
0
bin/mirror-outputs → dot_local/bin/executable_mirror-outputs
Executable file → Normal file
0
bin/single-polybar-launcher → dot_local/bin/executable_single-polybar-launcher
Executable file → Normal file
0
bin/single-polybar-launcher → dot_local/bin/executable_single-polybar-launcher
Executable file → Normal file
18
dot_local/bin/executable_tint2-launcher
Normal file
18
dot_local/bin/executable_tint2-launcher
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Terminate already running bar instances
|
||||||
|
killall -q tint2
|
||||||
|
|
||||||
|
# Wait until the processes have been shut down
|
||||||
|
while pgrep -u $UID -x tint2 >/dev/null; do sleep 1; done
|
||||||
|
|
||||||
|
# Launch tint2
|
||||||
|
tint2 & disown
|
||||||
|
|
||||||
|
# Final command won't work without sleep
|
||||||
|
sleep 1 &&
|
||||||
|
|
||||||
|
# Keep tint2 below other windows in fullscreen
|
||||||
|
if pgrep -x "tint2" > /dev/null ; then
|
||||||
|
xdo above -t "$(xdo id -N Bspwm -n root | sort | head -n 1)" $(xdo id -n tint2)
|
||||||
|
fi
|
0
bin/toggle-wifi → dot_local/bin/executable_toggle-wifi
Executable file → Normal file
0
bin/toggle-wifi → dot_local/bin/executable_toggle-wifi
Executable file → Normal file
18
dot_profile.tmpl
Normal file
18
dot_profile.tmpl
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# make Java behave when not using a DE
|
||||||
|
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||||
|
# move $GOPATH to .local
|
||||||
|
export GOPATH="$HOME/.local/opt/go"
|
||||||
|
export PATH="$HOME/.local/opt/go/bin:$PATH"
|
||||||
|
# add .local/bin to $PATH
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
{{- if eq .chezmoi.hostname "helix" }}
|
||||||
|
# make GTK apps scale correctly on hidpi
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 thunar
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE="0.50 Simple-scan"
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 lutris
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 spotify
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 pinta
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 Gajim
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 Ristretto
|
||||||
|
export GDK_SCALE=2 GDK_DPI_SCALE=0.50 ghex
|
||||||
|
{{- end }}
|
|
@ -2,21 +2,14 @@
|
||||||
|
|
||||||
userresources=$HOME/.Xresources
|
userresources=$HOME/.Xresources
|
||||||
usermodmap=$HOME/.Xmodmap
|
usermodmap=$HOME/.Xmodmap
|
||||||
sysresources=/etc/X11/xinit/.Xresources
|
sysresources=/etc/X11/xinit/Xresources
|
||||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
sysmodmap=/etc/X11/xinit/Xmodmap
|
||||||
|
|
||||||
|
|
||||||
# merge in defaults and keymaps
|
# merge in defaults and keymaps
|
||||||
|
|
||||||
if [ -f $sysresources ]; then
|
if [ -f $sysresources ]; then
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
xrdb -merge $sysresources
|
xrdb -merge $sysresources
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f $sysmodmap ]; then
|
if [ -f $sysmodmap ]; then
|
||||||
|
@ -24,15 +17,7 @@ if [ -f $sysmodmap ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$userresources" ]; then
|
if [ -f "$userresources" ]; then
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
xrdb -merge "$userresources"
|
xrdb -merge "$userresources"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$usermodmap" ]; then
|
if [ -f "$usermodmap" ]; then
|
||||||
|
@ -48,5 +33,10 @@ if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||||
unset f
|
unset f
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
{{ if eq .chezmoi.hostname "helix" -}}
|
||||||
|
xinput set-prop 13 312 .8 &
|
||||||
|
{{ else if eq .chezmoi.hostname "triangulum" -}}
|
||||||
|
xinput set-prop 10 306 1 &
|
||||||
|
{{- end }}
|
||||||
xsetroot -cursor_name left_ptr &
|
xsetroot -cursor_name left_ptr &
|
||||||
exec bspwm
|
exec bspwm
|
497
emacs.d/init.el
497
emacs.d/init.el
|
@ -1,497 +0,0 @@
|
||||||
;; Disable package.el early so it won't start loading packages before init is loaded
|
|
||||||
(setq package-enable-at-startup nil)
|
|
||||||
|
|
||||||
;; No thanks
|
|
||||||
(setq inhibit-startup-message t) ; Disable startup message
|
|
||||||
(scroll-bar-mode -1) ; Disable visible scrollbar
|
|
||||||
(tool-bar-mode -1) ; Disable the toolbar
|
|
||||||
(tooltip-mode -1) ; Disable tooltips
|
|
||||||
(set-fringe-mode 10) ; Add come extra space to the left/right sides
|
|
||||||
(menu-bar-mode -1) ; Disable the menu bar
|
|
||||||
(setq-default custom-file null-device) ; Write customizations not in this file to the null device (AKA stop littering in my init.el)
|
|
||||||
(setq confirm-kill-processes nil) ; Stop asking about running processes on exit
|
|
||||||
|
|
||||||
;; Visible bell
|
|
||||||
(setq visible-bell t)
|
|
||||||
|
|
||||||
; Font
|
|
||||||
(set-face-attribute 'default nil :font "Hack" :height 110)
|
|
||||||
|
|
||||||
;; Make ESC quit prompts
|
|
||||||
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
|
||||||
|
|
||||||
;; paren/bracket pairs
|
|
||||||
(show-paren-mode t)
|
|
||||||
(setq-default show-paren-style 'parenthesis)
|
|
||||||
(electric-pair-mode 1)
|
|
||||||
|
|
||||||
;; Profile emacs startup
|
|
||||||
(add-hook 'emacs-startup-hook
|
|
||||||
(lambda ()
|
|
||||||
(message "*** Emacs loaded in %s with %d garbage collections."
|
|
||||||
(format "%.2f seconds"
|
|
||||||
(float-time
|
|
||||||
(time-subtract after-init-time before-init-time)))
|
|
||||||
gcs-done)))
|
|
||||||
|
|
||||||
;; Change the user-emacs-directory to keep ~/.emacs.d clean
|
|
||||||
(setq user-emacs-directory (expand-file-name "~/.cache/emacs/")
|
|
||||||
url-history-file (expand-file-name "url/history" user-emacs-directory))
|
|
||||||
|
|
||||||
;; No annoying Windows errors
|
|
||||||
(set-default-coding-systems 'utf-8)
|
|
||||||
|
|
||||||
;; Disable suspend-frame shortcut
|
|
||||||
(define-key global-map "\C-z" nil)
|
|
||||||
|
|
||||||
;; More reasonable keybinds for resizing windows
|
|
||||||
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally)
|
|
||||||
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally)
|
|
||||||
(global-set-key (kbd "S-C-<down>") 'shrink-window)
|
|
||||||
(global-set-key (kbd "S-C-<up>") 'enlarge-window)
|
|
||||||
|
|
||||||
;; Improve scrolling
|
|
||||||
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ; one line at a time
|
|
||||||
(setq mouse-wheel-progressive-speed nil) ; don't accelerate scrolling
|
|
||||||
(setq mouse-wheel-follow-mouse 't) ; scroll window under mouse
|
|
||||||
(setq scroll-step 1) ; keyboard scroll one line at a time
|
|
||||||
|
|
||||||
;; Tabs
|
|
||||||
(setq-default indent-tabs-mode nil)
|
|
||||||
(setq-default tab-width 4)
|
|
||||||
(setq indent-line-function 'insert-tab)
|
|
||||||
|
|
||||||
;;Line numbers
|
|
||||||
(setq column-number-mode t)
|
|
||||||
(dolist (mode '(text-mode-hook
|
|
||||||
prog-mode-hook
|
|
||||||
conf-mode-hook))
|
|
||||||
(add-hook mode (lambda () (display-line-numbers-mode 1))))
|
|
||||||
|
|
||||||
;; Show vertical line at column 80 in prog-mode
|
|
||||||
(setq-default fill-column 80)
|
|
||||||
(add-hook 'prog-mode-hook #'display-fill-column-indicator-mode)
|
|
||||||
|
|
||||||
; No line numbers in org-mode
|
|
||||||
(dolist (mode '(org-mode-hook))
|
|
||||||
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
|
||||||
|
|
||||||
;; Install and load straight.el
|
|
||||||
(defvar bootstrap-version)
|
|
||||||
(let ((bootstrap-file
|
|
||||||
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
|
||||||
(bootstrap-version 5))
|
|
||||||
(unless (file-exists-p bootstrap-file)
|
|
||||||
(with-current-buffer
|
|
||||||
(url-retrieve-synchronously
|
|
||||||
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
|
||||||
'silent 'inhibit-cookies)
|
|
||||||
(goto-char (point-max))
|
|
||||||
(eval-print-last-sexp)))
|
|
||||||
(load bootstrap-file nil 'nomessage))
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;; Not needed when using straight.el ;;;;;;;;;;;;;;
|
|
||||||
;; Initialize package sources
|
|
||||||
;(require 'package)
|
|
||||||
|
|
||||||
;(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
|
||||||
; ("org" . "https://orgmode.org/elpa/")
|
|
||||||
; ("elpa" . "https://elpa.gnu.org/packages/")))
|
|
||||||
|
|
||||||
;(package-initialize)
|
|
||||||
;(unless package-archive-contents
|
|
||||||
; (package-refresh-contents))
|
|
||||||
|
|
||||||
;; Initialize use-package on non-Linux platforms
|
|
||||||
;(unless (package-installed-p 'use-package)
|
|
||||||
; (package-install 'use-package))
|
|
||||||
|
|
||||||
;(require 'use-package)
|
|
||||||
;(setq use-package-always-ensure t)
|
|
||||||
;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; Install use-package
|
|
||||||
(straight-use-package 'use-package)
|
|
||||||
|
|
||||||
;; Make use-package use straight.el
|
|
||||||
(use-package straight
|
|
||||||
:custom (straight-use-package-by-default t))
|
|
||||||
|
|
||||||
;; Theme
|
|
||||||
|
|
||||||
(setq custom-safe-themes t)
|
|
||||||
|
|
||||||
;; (use-package everforest
|
|
||||||
;; :straight (:type git :repo "https://git.sr.ht/~theorytoe/everforest-theme"))
|
|
||||||
|
|
||||||
;; (use-package gruvbox-theme
|
|
||||||
;; :config
|
|
||||||
;; (load-theme 'gruvbox-dark-soft t))
|
|
||||||
|
|
||||||
(add-to-list 'custom-theme-load-path "~/.cache/emacs/custom/everforest-theme")
|
|
||||||
(load-theme 'everforest-hard-dark t)
|
|
||||||
|
|
||||||
;; Help distinguish work buffers from others like sidebars and terminal
|
|
||||||
(use-package solaire-mode
|
|
||||||
:init
|
|
||||||
(solaire-global-mode t))
|
|
||||||
|
|
||||||
;; Icons
|
|
||||||
(use-package all-the-icons)
|
|
||||||
|
|
||||||
;; Modeline
|
|
||||||
|
|
||||||
(use-package minions
|
|
||||||
:hook (doom-modeline-mode . minions-mode)
|
|
||||||
(simple-modeline-mode . minions-mode))
|
|
||||||
|
|
||||||
(use-package doom-modeline
|
|
||||||
:init (doom-modeline-mode)
|
|
||||||
:custom
|
|
||||||
(doom-modeline-height 30)
|
|
||||||
(doom-modeline-bar-width .75)
|
|
||||||
(doom-modeline-window-width-limit fill-column)
|
|
||||||
(doom-modeline-lsp t)
|
|
||||||
(doom-modeline-minor-modes t)
|
|
||||||
(doom-modeline-persp-name nil)
|
|
||||||
(doom-modeline-buffer-file-name-style 'truncate-upto-project)
|
|
||||||
(doom-modeline-major-mode-icon t)
|
|
||||||
(doom-modeline-major-mode-color-icon t)
|
|
||||||
(doom-modeline-enable-word-count t)
|
|
||||||
(doom-modeline-env-version t)
|
|
||||||
(doom-modeline-env-load-string "..."))
|
|
||||||
|
|
||||||
;; Don't remind me about some minor modes
|
|
||||||
(use-package diminish)
|
|
||||||
|
|
||||||
;; Automatically set paths to the new user-emacs-directory
|
|
||||||
(use-package no-littering)
|
|
||||||
|
|
||||||
;; Automatically clean whitespace
|
|
||||||
(use-package ws-butler
|
|
||||||
:hook ((text-mode . ws-butler-mode)
|
|
||||||
(prog-mode . ws-butler-mode)))
|
|
||||||
|
|
||||||
;; Overview of keybindings available based on prefix keys
|
|
||||||
(use-package which-key
|
|
||||||
:init (which-key-mode)
|
|
||||||
:config
|
|
||||||
(setq which-key-idle-delay 0.3))
|
|
||||||
|
|
||||||
;; Navigation: Ivy/Counsel/Swiper
|
|
||||||
(use-package ivy
|
|
||||||
:init
|
|
||||||
(ivy-mode 1)
|
|
||||||
:config
|
|
||||||
(setq ivy-use-virtual-buffers t)
|
|
||||||
(setq ivy-wrap t)
|
|
||||||
(setq ivy-count-format "(%d/%d) ")
|
|
||||||
(setq enable-recursive-minibuffers t))
|
|
||||||
|
|
||||||
(use-package ivy-rich
|
|
||||||
:after ivy
|
|
||||||
:hook (counsel-mode . ivy-rich-mode)
|
|
||||||
:config
|
|
||||||
(setq ivy-rich-parse-remote-buffer nil))
|
|
||||||
|
|
||||||
(use-package counsel
|
|
||||||
:after ivy
|
|
||||||
:config
|
|
||||||
(counsel-mode 1)
|
|
||||||
(setq ivy-initial-inputs-alist nil))
|
|
||||||
|
|
||||||
(use-package swiper
|
|
||||||
:after ivy
|
|
||||||
:bind (("C-s" . swiper)))
|
|
||||||
|
|
||||||
(use-package treemacs
|
|
||||||
:bind
|
|
||||||
(:map global-map
|
|
||||||
("M-0" . treemacs-select-window)
|
|
||||||
("C-x t 1" . treemacs-delete-other-windows)
|
|
||||||
("C-x t t" . treemacs)
|
|
||||||
("C-x t B" . treemacs-bookmark)
|
|
||||||
("C-x t C-t" . treemacs-find-file)
|
|
||||||
("C-x t M-t" . treemacs-find-tag)))
|
|
||||||
|
|
||||||
(use-package lsp-treemacs
|
|
||||||
:config
|
|
||||||
(lsp-treemacs-sync-mode 1))
|
|
||||||
|
|
||||||
;; Git
|
|
||||||
|
|
||||||
(use-package magit
|
|
||||||
:bind ("C-M-;" . magit-status)
|
|
||||||
:commands (magit-status magit-get-current-branch)
|
|
||||||
:custom
|
|
||||||
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
|
|
||||||
|
|
||||||
;; Project management
|
|
||||||
|
|
||||||
(use-package projectile
|
|
||||||
:init
|
|
||||||
(projectile-mode +1)
|
|
||||||
:bind-keymap
|
|
||||||
(("C-M-p" . projectile-find-file)
|
|
||||||
("C-c p" . projectile-command-map))
|
|
||||||
:bind (:map projectile-mode-map
|
|
||||||
("C-c p" . projectile-command-map)))
|
|
||||||
|
|
||||||
;; LSP & debugging
|
|
||||||
|
|
||||||
(use-package lsp-mode
|
|
||||||
:init
|
|
||||||
(setq lsp-keymap-prefix "C-c l")
|
|
||||||
:commands (lsp lsp-deferred)
|
|
||||||
:hook
|
|
||||||
((c-mode . lsp)
|
|
||||||
(c++-mode . lsp)
|
|
||||||
(go-mode . lsp)
|
|
||||||
(java-mode . lsp)
|
|
||||||
(js-mode . lsp)
|
|
||||||
(latex-mode . lsp)
|
|
||||||
(python-mode . lsp)
|
|
||||||
(rust-mode . lsp)
|
|
||||||
(tex-mode . lsp)
|
|
||||||
(typescript-mode . lsp)
|
|
||||||
(web-mode . lsp)
|
|
||||||
(zig-mode . lsp)
|
|
||||||
(lsp-mode . lsp-enable-which-key-integration))
|
|
||||||
:config
|
|
||||||
(setq lsp-prefer-flymake nil)) ;prefer lsp-ui (flycheck) to flymake
|
|
||||||
; :bind
|
|
||||||
; (:map lsp-mode-map
|
|
||||||
; ("TAB" . completion-at-point)))
|
|
||||||
|
|
||||||
(use-package lsp-ui
|
|
||||||
:requires lsp-mode flycheck
|
|
||||||
:hook (lsp-mode . lsp-ui-mode)
|
|
||||||
:commands lsp-ui-mode
|
|
||||||
:config
|
|
||||||
(setq lsp-ui-doc-enable t)
|
|
||||||
(setq lsp-ui-doc-use-childframe t)
|
|
||||||
(setq lsp-ui-doc-position 'bottom-and-right)
|
|
||||||
(setq lsp-ui-doc-include-signature t)
|
|
||||||
(setq lsp-ui-sideline-enable t)
|
|
||||||
(setq lsp-ui-sideline-show-hover nil)
|
|
||||||
(setq lsp-ui-flycheck-enable t)
|
|
||||||
(setq lsp-ui-flycheck-list-position 'right)
|
|
||||||
(setq lsp-ui-flycheck-live-reporting t)
|
|
||||||
(setq lsp-ui-peek-enable t)
|
|
||||||
(setq lsp-ui-peek-list-width 60)
|
|
||||||
(setq lsp-ui-peek-peek-height 25)
|
|
||||||
(lsp-ui-doc-show))
|
|
||||||
|
|
||||||
(use-package dap-mode
|
|
||||||
:after lsp-mode
|
|
||||||
:commands dap-debug
|
|
||||||
:config
|
|
||||||
(dap-ui-mode 1)
|
|
||||||
(dap-tooltip-mode 1)
|
|
||||||
(eval-when-compile
|
|
||||||
(require 'cl-lib))
|
|
||||||
(require 'dap-python)
|
|
||||||
;(require 'dap-node)
|
|
||||||
(require 'dap-lldb)
|
|
||||||
:bind
|
|
||||||
(:map dap-mode-map
|
|
||||||
("<f5>" . dap-debug)
|
|
||||||
("<f10>" . dap-next)
|
|
||||||
("<f11>" . dap-step-in)
|
|
||||||
("S-<f5>" . dap-disconnect)
|
|
||||||
("C-S-<f5>" . dap-debug-restart)))
|
|
||||||
|
|
||||||
(use-package company
|
|
||||||
:config
|
|
||||||
(global-company-mode 1)
|
|
||||||
:custom
|
|
||||||
(company-idle-delay 0)
|
|
||||||
(company-minimum-prefix-length 1)
|
|
||||||
(company-tooltip-align-annotations t)
|
|
||||||
:bind
|
|
||||||
(:map company-active-map
|
|
||||||
("RET" . nil)
|
|
||||||
("[return]" . nil)
|
|
||||||
("TAB" . company-complete-selection)
|
|
||||||
("<tab>" . company-complete-selection)
|
|
||||||
("C-n" . company-select-next)
|
|
||||||
("C-p" . company-select-previous)))
|
|
||||||
|
|
||||||
;;; Languages/Tools
|
|
||||||
|
|
||||||
;; Highlighting/Formatting
|
|
||||||
|
|
||||||
(use-package apheleia
|
|
||||||
:init
|
|
||||||
(apheleia-global-mode +1))
|
|
||||||
|
|
||||||
(use-package tree-sitter
|
|
||||||
:config
|
|
||||||
(global-tree-sitter-mode)
|
|
||||||
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
|
|
||||||
|
|
||||||
(use-package tree-sitter-langs
|
|
||||||
:after tree-sitter)
|
|
||||||
|
|
||||||
;; C/C++
|
|
||||||
|
|
||||||
(setq dap-lldb-debug-program '("/usr/bin/lldb-vscode"))
|
|
||||||
(setq-default c-default-style "k&r")
|
|
||||||
(setq-default c-basic-offset 2)
|
|
||||||
|
|
||||||
;(use-package ccls
|
|
||||||
; :hook ((c-mode c++-mode objc-mode cuda-mode) .
|
|
||||||
; (lambda () (require 'ccls) (lsp))))
|
|
||||||
|
|
||||||
;(use-package modern-cpp-font-lock
|
|
||||||
; :config
|
|
||||||
; (modern-c++-font-lock-global-mode))
|
|
||||||
|
|
||||||
;; Golang
|
|
||||||
|
|
||||||
;; (use-package go-mode
|
|
||||||
;; :config
|
|
||||||
;; (add-hook 'before-save-hook #'lsp-organize-imports))
|
|
||||||
|
|
||||||
;; Java
|
|
||||||
|
|
||||||
;(use-package lsp-java)
|
|
||||||
|
|
||||||
;; JavaScript/TypeScript, HTML, CSS
|
|
||||||
|
|
||||||
;; (setq css-indent-level 2)
|
|
||||||
;; (setq css-indent-offset 2)
|
|
||||||
;; (setq js-indent-level 2)
|
|
||||||
|
|
||||||
;; (add-to-list 'auto-mode-alist '("\\.mjs\\'" . js-mode))
|
|
||||||
|
|
||||||
;; (use-package js2-mode
|
|
||||||
;; :config
|
|
||||||
;; (add-to-list 'interpreter-mode-alist '("#!/usr/bin/env node" . js2-mode))
|
|
||||||
;; ;(setq js2-strict-missing-semi-warning t)
|
|
||||||
;; (setq js2-mode-show-strict-warnings t)
|
|
||||||
;; :hook (js-mode . js2-minor-mode))
|
|
||||||
|
|
||||||
;; (use-package typescript-mode
|
|
||||||
;; :config
|
|
||||||
;; (setq typescript-indent-level 2)
|
|
||||||
;; :mode ("\\.ts\\'" . typescript-mode)
|
|
||||||
;; ("\\.tsx\\'" . typescript-mode))
|
|
||||||
|
|
||||||
;; (use-package restclient
|
|
||||||
;; :init
|
|
||||||
;; (use-package company-restclient)
|
|
||||||
;; :mode ("\\.http\\'" . restclient-mode))
|
|
||||||
|
|
||||||
;; (use-package rainbow-mode
|
|
||||||
;; :hook
|
|
||||||
;; ((js-mode . rainbow-mode)
|
|
||||||
;; (typescript-mode . rainbow-mode)
|
|
||||||
;; (web-mode . rainbow-mode)))
|
|
||||||
|
|
||||||
;; (use-package skewer-mode
|
|
||||||
;; :init
|
|
||||||
;; (setq httpd-port 8080)
|
|
||||||
;; :hook
|
|
||||||
;; (('js-mode-hook 'skewer-mode)
|
|
||||||
;; ('css-mode-hook 'skewer-css-mode)
|
|
||||||
;; ('html-mode-hook 'skewer-html-mode)))
|
|
||||||
|
|
||||||
;; (use-package skewer-reload-stylesheets
|
|
||||||
;; :hook
|
|
||||||
;; (('css-mode-hook 'skewer-reload-stylesheets-start-editing)
|
|
||||||
;; ('scss-mode-hook 'skewer-reload-stylesheets-start-editing)))
|
|
||||||
|
|
||||||
;; (use-package simple-httpd)
|
|
||||||
|
|
||||||
;; (use-package web-mode
|
|
||||||
;; :config
|
|
||||||
;; (setq web-mode-code-indent-offset 2)
|
|
||||||
;; (setq web-mode-markup-indent-offset 2)
|
|
||||||
;; (setq web-mode-attribute-indent-offset 2)
|
|
||||||
;; :mode
|
|
||||||
;; (("\\.phtml\\'" . web-mode)
|
|
||||||
;; ("\\.tpl\\.php\\'" . web-mode)
|
|
||||||
;; ("\\.jsp\\'" . web-mode)
|
|
||||||
;; ("\\.as[cp]x\\'" . web-mode)
|
|
||||||
;; ("\\.erb\\'" . web-mode)
|
|
||||||
;; ("\\.mustache\\'" . web-mode)
|
|
||||||
;; ("\\.djhtml\\'" . web-mode)
|
|
||||||
;; ("\\.jst.ejs\\'" . web-mode)
|
|
||||||
;; ("\\.html?\\'" . web-mode)))
|
|
||||||
|
|
||||||
;; (use-package jsdoc
|
|
||||||
;; :straight (jsdoc :type git :host github :repo "isamert/jsdoc.el")
|
|
||||||
;; :bind ("C-c C-n" . jsdoc))
|
|
||||||
|
|
||||||
;; LaTeX
|
|
||||||
|
|
||||||
;; (use-package lsp-latex)
|
|
||||||
|
|
||||||
;; (setq lsp-tex-server 'digestif)
|
|
||||||
|
|
||||||
|
|
||||||
;; Protocol Buffers
|
|
||||||
|
|
||||||
;; (use-package protobuf-mode)
|
|
||||||
|
|
||||||
;; Python
|
|
||||||
|
|
||||||
(setq dap-python-debugger 'debugpy)
|
|
||||||
|
|
||||||
(use-package lsp-pyright
|
|
||||||
:hook (python-mode . (lambda ()
|
|
||||||
(require 'lsp-pyright)
|
|
||||||
(lsp)))) ; or lsp-deferred
|
|
||||||
|
|
||||||
(use-package numpydoc
|
|
||||||
:after python
|
|
||||||
:bind (:map python-mode-map
|
|
||||||
("C-c C-n" . numpydoc-generate))
|
|
||||||
:config
|
|
||||||
(setq numpydoc-insert-examples-block nil))
|
|
||||||
|
|
||||||
(use-package conda
|
|
||||||
:init
|
|
||||||
(setq conda-anaconda-home (expand-file-name "/opt/miniconda3"))
|
|
||||||
(setq conda-env-home-directory (expand-file-name "~/.conda/envs"))
|
|
||||||
(conda-env-initialize-interactive-shells)
|
|
||||||
;(conda-env-autoactivate-mode)
|
|
||||||
:hook
|
|
||||||
('find-file-hook . (lambda ()
|
|
||||||
(when (bound-and-true-p conda-project-env-path)
|
|
||||||
(conda-env-activate-for-buffer)))))
|
|
||||||
|
|
||||||
;; Rust
|
|
||||||
|
|
||||||
;(use-package rust-mode)
|
|
||||||
|
|
||||||
;; Zig
|
|
||||||
|
|
||||||
;(use-package zig-mode
|
|
||||||
; :custom (zig-format-on-save nil)
|
|
||||||
; :config
|
|
||||||
; (add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
|
||||||
; (make-lsp-client
|
|
||||||
; :new-connection (lsp-stdio-connection "/usr/bin/zls")
|
|
||||||
; :major-modes '(zig-mode)
|
|
||||||
; :server-id 'zls))
|
|
||||||
|
|
||||||
;; Syntax checking
|
|
||||||
(use-package flycheck
|
|
||||||
:hook (lsp-mode . flycheck-mode)
|
|
||||||
:config
|
|
||||||
(setq flycheck-python-flake8-executable "flake8"))
|
|
||||||
|
|
||||||
;; Templating
|
|
||||||
(use-package yasnippet
|
|
||||||
:bind
|
|
||||||
("C-c y s" . yas-insert-snippet)
|
|
||||||
("C-c y v" . yas-visit-snippet-file)
|
|
||||||
:config
|
|
||||||
(add-to-list 'yas-snippet-dirs "~/.emacs.d/snippets")
|
|
||||||
(yas-reload-all)
|
|
||||||
(yas-global-mode))
|
|
||||||
|
|
||||||
(use-package yasnippet-snippets)
|
|
||||||
;;; End init.el
|
|
|
@ -1,27 +0,0 @@
|
||||||
# -*- mode: snippet -*-
|
|
||||||
# key : 225
|
|
||||||
# group: school
|
|
||||||
# name : discrete math
|
|
||||||
# --
|
|
||||||
\documentclass[12pt,letterpaper]{article}
|
|
||||||
\usepackage[utf8]{inputenc}
|
|
||||||
\usepackage{setspace}
|
|
||||||
\usepackage{parskip}
|
|
||||||
\usepackage[margin=1in]{geometry}
|
|
||||||
\usepackage{amssymb}
|
|
||||||
\usepackage{amsmath}
|
|
||||||
|
|
||||||
\linespread{1.25}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\large
|
|
||||||
$1\\\\
|
|
||||||
CS-225: Discrete Structures in CS\\\\
|
|
||||||
Homework $2, Part $3\\\\
|
|
||||||
Exercise Set $4: Problems $5
|
|
||||||
$6
|
|
||||||
\normalsize
|
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
|
|
@ -1,9 +0,0 @@
|
||||||
# -*- mode: snippet -*-
|
|
||||||
# key : 162
|
|
||||||
# group: school
|
|
||||||
# name : cs hw header
|
|
||||||
# --
|
|
||||||
# Author: $1
|
|
||||||
# GitHub username: $2
|
|
||||||
# Date: `(format-time-string "%Y-%m-%d")`$0
|
|
||||||
# Description: $3
|
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
|
|
||||||
### Post checkout hook to update .git/info/exclude with
|
|
||||||
### branch specific .gitignore.[branch-name] files.
|
|
||||||
### Copy to .git/hooks and chmod +x after fresh clone
|
|
||||||
### to ensure proper .gitignore configuration.
|
|
||||||
|
|
||||||
branch_switched=$3
|
|
||||||
|
|
||||||
if [ "$branch_switched" != "1" ]
|
|
||||||
then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
echo "---- POST CHECKOUT ----"
|
|
||||||
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
|
||||||
root_dir="$(pwd -P)"
|
|
||||||
info_dir="$root_dir/.git/info"
|
|
||||||
|
|
||||||
exclude_target='.gitignore'
|
|
||||||
if [ -f "$root_dir/$exclude_target.$current_branch" ]
|
|
||||||
then
|
|
||||||
echo "Prepare to use .gitignore.$current_branch as exclude file"
|
|
||||||
exclude_target=.gitignore.$current_branch
|
|
||||||
fi
|
|
||||||
cd "$info_dir" || exit
|
|
||||||
rm exclude
|
|
||||||
#ln -s $exclude_target exclude
|
|
||||||
echo "Copy .gitignore.$current_branch file in place of exclude"
|
|
||||||
cp "$root_dir/$exclude_target" exclude
|
|
||||||
echo "--- POST CHECKOUT END ---"
|
|
Binary file not shown.
Before Width: | Height: | Size: 435 KiB |
Binary file not shown.
Before Width: | Height: | Size: 241 KiB |
Binary file not shown.
Before Width: | Height: | Size: 238 KiB |
2
vimrc
2
vimrc
|
@ -1,2 +0,0 @@
|
||||||
source $VIMRUNTIME/defaults.vim
|
|
||||||
set mouse-=a
|
|
Loading…
Reference in a new issue