diff --git a/dot_config/aerc/binds.conf b/dot_config/aerc/binds.conf index 56fb4f8..8f0bfd3 100644 --- a/dot_config/aerc/binds.conf +++ b/dot_config/aerc/binds.conf @@ -25,9 +25,11 @@ rr = :reply -q ra = :reply -aq [compose] +$ex = [compose::editor] $noinherit = true +$ex = [compose::review] y = :send @@ -38,3 +40,4 @@ a = :attach [terminal] $noinherit = true +$ex = diff --git a/dot_config/i3/config b/dot_config/i3/config index 389dbc1..2dea1cb 100644 --- a/dot_config/i3/config +++ b/dot_config/i3/config @@ -46,6 +46,8 @@ exec --no-startup-id i3-msg 'workspace 10; exec thunderbird; exec rocketchat-des # Use pactl to adjust volume in PulseAudio. set $refresh_i3status killall -SIGUSR1 i3status +bindsym $mod+equal exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +4% && $refresh_i3status +bindsym $mod+minus exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -4% && $refresh_i3status bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status @@ -66,7 +68,11 @@ bindsym $mod+Shift+q kill # start dmenu (a program launcher) # bindsym $mod+space exec dmenu_run +<<<<<<< HEAD bindsym $mod+space exec $HOME/.local/scripts/rofiwrap.sh +======= +bindsym $mod+space exec "rofi -show combi -modi combi -combi-modi window,drun -levenshtein-sort" +>>>>>>> fd56869... changes # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. diff --git a/dot_config/mpd/.keep b/dot_config/mpd/.keep new file mode 100644 index 0000000..e69de29 diff --git a/dot_config/mpd/mpd.conf b/dot_config/mpd/mpd.conf new file mode 100644 index 0000000..7b7fd9d --- /dev/null +++ b/dot_config/mpd/mpd.conf @@ -0,0 +1,391 @@ +# An example configuration file for MPD. +# Read the user manual for documentation: http://www.musicpd.org/doc/user/ + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "/mnt/storage/music" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +playlist_directory "~/.config/mpd/playlists" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +db_file "~/.config/mpd/database" +# +# These settings are the locations for the daemon log files for the daemon. +# These logs are great for troubleshooting, depending on your log_level +# settings. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog. +# +#log_file "~/.mpd/log" +log_file "~/.mpd.log" +# +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +#pid_file "~/.mpd/pid" +# +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +#state_file "~/.mpd/state" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +#sticker_file "~/.mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +#user "nobody" +# +# This setting specifies the group that MPD will run as. If not specified +# primary group of user specified with "user" setting will be used (if set). +# This is useful if MPD needs to be a member of group such as "audio" to +# have permission to use sound card. +# +#group "nogroup" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other then the default, any. +# This setting can deny access to control of the daemon. Not effective if +# systemd socket activiation is in use. +# +# For network +#bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "~/.mpd/socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +# +#port "6600" +# +# This setting controls the type of information which is logged. Available +# setting arguments are "default", "secure" or "verbose". The "verbose" setting +# argument is recommended for troubleshooting, though can quickly stretch +# available resources on limited hardware storage. +# +#log_level "default" +# +# Setting "restore_paused" to "yes" puts MPD into pause mode instead +# of starting playback after startup. +# +#restore_paused "no" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. The complete list of possible values can be +# found in the user manual. +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This example just enables the "comment" tag without disabling all +# the other supported tags: +#metadata_to_use "+comment" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. %h will be replaced with the hostname. +# +#zeroconf_name "Music Player @ %h" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# setting can be specified multiple times for different password profiles. +# +#password "password@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read,add,control,admin" +# +############################################################################### + + +# Database ####################################################################### +# + +#database { +# plugin "proxy" +# host "other.mpd.host" +# port "6600" +#} + +# Input ####################################################################### +# + +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# An example of an ALSA output: +# +audio_output { + type "alsa" + name "My ALSA Device" +## device "hw:0,0" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional +} +# +# An example of an OSS output: +# +#audio_output { +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional +#} +# +# An example of a shout output (for streaming to Icecast): +# +#audio_output { +# type "shout" +# encoder "vorbis" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## url "http://example.com" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional +#} +# +# An example of a recorder output: +# +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} +# +# An example of a httpd output (built-in HTTP streaming server): +# +audio_output { + type "httpd" + name "My HTTP Stream" + encoder "vorbis" # optional, vorbis or lame + port "6680" + bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 + quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined + format "44100:16:1" + max_clients "0" # optional 0=no limit +} +# +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +#audio_output { +# type "pulse" +# name "My Pulse Output" +## server "remote_server" # optional +## sink "remote_server_sink" # optional +#} +# +# An example of a winmm output (Windows multimedia API). +# +#audio_output { +# type "winmm" +# name "My WinMM output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +#} +# +# An example of an openal output. +# +#audio_output { +# type "openal" +# name "My OpenAL output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +#} +# +# An example of an sndio output. +# +#audio_output { +# type "sndio" +# name "sndio output" +# mixer_type "hardware" +#} +# +# An example of an OS X output: +# +#audio_output { +# type "osx" +# name "My OS X Device" +## device "Built-in Output" # optional +## channel_map "-1,-1,0,1" # optional +#} +# +## Example "pipe" output: +# +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} +# +## An example of a null output (for no audio output): +# +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} +# +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album", "track" or "auto". "auto" is a special mode that +# chooses between "track" and "album" depending on the current state of +# random playback. If random playback is enabled then "track" mode is used. +# See for more details about ReplayGain. +# This setting is off by default. +# +#replaygain "album" +# +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. +# +#replaygain_preamp "0" +# +# This setting sets the pre-amp used for files that do NOT have ReplayGain tags. +# By default this setting is disabled. +# +#replaygain_missing_preamp "0" +# +# This setting enables or disables ReplayGain limiting. +# MPD calculates actual amplification based on the ReplayGain tags +# and replaygain_preamp / replaygain_missing_preamp setting. +# If replaygain_limit is enabled MPD will never amplify audio signal +# above its original level. If replaygain_limit is disabled such amplification +# might occur. By default this setting is enabled. +# +#replaygain_limit "yes" +# +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. +# +#volume_normalization "no" +# +############################################################################### + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +############################################################################### diff --git a/dot_config/nvim/coc-settings.json b/dot_config/nvim/coc-settings.json index 24fa799..9502e8e 100644 --- a/dot_config/nvim/coc-settings.json +++ b/dot_config/nvim/coc-settings.json @@ -1,6 +1,24 @@ { "python.jediEnabled": false, "languageserver": { + "python": { + "command": "python", + "args": [ + "-mpyls", + "-vv" + ], + "filetypes": [ + "python" + ], + "settings": { + "plugins": { + "pyls_mypy": { + "enabled": true, + "live_mode": false + } + } + } + }, "ocaml": { "command": "opam", "args": [ @@ -24,6 +42,24 @@ "filetypes": [ "go" ] + }, + "haskell": { + "command": "ghcide", + "args": [ + "--lsp" + ], + "rootPatterns": [ + ".stack.yaml", + ".hie-bios", + "BUILD.bazel", + "cabal.config", + "package.yaml" + ], + "filetypes": [ + "hs", + "lhs", + "haskell" + ] } } } diff --git a/dot_config/nvim/init.vim b/dot_config/nvim/init.vim index 27d79d0..6575ce0 100644 --- a/dot_config/nvim/init.vim +++ b/dot_config/nvim/init.vim @@ -4,6 +4,7 @@ Plug 'vim-airline/vim-airline' exe 'source' (stdpath('config') . '/airline.vim') Plug 'neoclide/coc.nvim', {'branch': 'release'} +" Plug 'file:///home/michael/Projects/coc-nvim-rs', { 'do': 'cargo build --release' } exe 'source' (stdpath('config') . '/coc.vim') " Plug 'file://'.expand('~/Projects/coc-nvim-rs/') @@ -11,17 +12,24 @@ Plug 'preservim/nerdtree' exe 'source' (stdpath('config') . '/nerdtree.vim') Plug 'ctrlpvim/ctrlp.vim' +let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""' + +Plug 'kovisoft/slimv' + Plug 'mhinz/vim-startify' Plug 'tomasiser/vim-code-dark' Plug 'jiangmiao/auto-pairs' Plug 'GutenYe/json5.vim' +Plug 'cespare/vim-toml' Plug 'godlygeek/tabular' Plug 'plasticboy/vim-markdown' let g:vim_markdown_new_list_item_indent = 2 +let g:vim_markdown_folding_disabled = 1 +let g:vim_markdown_toml_frontmatter = 1 -" Plug 'editorconfig/editorconfig-vim' +Plug 'editorconfig/editorconfig-vim' " Plug 'dense-analysis/ale' " Plug 'vim-syntastic/syntastic' " Plug 'majutsushi/tagbar' @@ -51,6 +59,7 @@ set modelines=5 set tabstop=4 set shiftwidth=4 set expandtab +set formatoptions+=t syntax on filetype on diff --git a/dot_config/nvim/nerdtree.vim b/dot_config/nvim/nerdtree.vim index 85774f3..da4a049 100644 --- a/dot_config/nvim/nerdtree.vim +++ b/dot_config/nvim/nerdtree.vim @@ -1 +1,2 @@ map :NERDTreeToggle +let g:NERDTreeShowHidden=1 diff --git a/dot_config/sway/config b/dot_config/sway/config index b2fe1b1..2a53357 100644 --- a/dot_config/sway/config +++ b/dot_config/sway/config @@ -19,6 +19,7 @@ exec --no-startup-id dunst bindsym $mod+Return exec i3-sensible-terminal bindsym $mod+l exec swaylock bindsym $mod+m exec alacritty -e aerc +bindsym $mod+n exec alacritty -e newsboat bindsym $mod+p exec $HOME/.local/scripts/passmenu.sh bindsym $mod+semicolon exec alacritty -e nvim $HOME/todos.md bindsym $mod+space exec bemenu-run @@ -32,6 +33,8 @@ bindsym $mod+h split h bindsym $mod+r mode "resize" bindsym $mod+v split v +bindsym $mod+equal exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +4% && $refresh_i3status +bindsym $mod+minus exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -4% && $refresh_i3status bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status diff --git a/dot_config/waybar/style.css b/dot_config/waybar/style.css index 9239158..7b0ade3 100644 --- a/dot_config/waybar/style.css +++ b/dot_config/waybar/style.css @@ -12,12 +12,12 @@ window#waybar { left bottom, left top, from(rgba(0, 0, 0, 0.9)), - to(rgba(0, 0, 0, 0.6)) + to(rgba(0, 0, 0, 0.0)) ); } #workspaces button { - padding: 0 5px; + padding: 2px 5px; border-bottom: 2px solid transparent; background: transparent; } @@ -26,8 +26,9 @@ window#waybar { border-bottom: 2px solid white; } -#clock, #battery, #cpu, #memory, #network, #pulseaudio, #custom-spotify, #tray, #mode { - padding: 0 3px; - margin: 0 2px; +#mpd, #disk, #clock, #battery, #cpu, #memory, #network, #pulseaudio, #tray, #mode { + padding: 2px 6px; + margin: 0 3px; + background-color: rgba(0, 0, 0, 0.5); } diff --git a/dot_local/scripts/executable_rofiwrap.sh b/dot_local/scripts/executable_rofiwrap.sh index ad3125a..de6c4fe 100644 --- a/dot_local/scripts/executable_rofiwrap.sh +++ b/dot_local/scripts/executable_rofiwrap.sh @@ -1,3 +1,3 @@ #!/bin/bash source $HOME/.zshrc -exec rofi -show drun -levenshtein-sort +exec rofi -show combi -modi combi -combi-modi window,drun -levenshtein-sort diff --git a/dot_zprofile b/dot_zprofile index 19a5f3b..e9e30a0 100644 --- a/dot_zprofile +++ b/dot_zprofile @@ -3,12 +3,15 @@ export PATH="$HOME/.cargo/bin:$PATH" export TERMINAL="/usr/bin/alacritty" export EDITOR="/usr/bin/nvim" -# if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then exec startx; fi - if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]] then - export MOZ_ENABLE_WAYLAND=1 - exec sway + exec startx; fi +# if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]] +# then +# export MOZ_ENABLE_WAYLAND=1 +# exec sway +# fi + # vim: set ft=zsh : diff --git a/dot_zshrc b/dot_zshrc index 7cefe65..185c347 100644 --- a/dot_zshrc +++ b/dot_zshrc @@ -1,3 +1,4 @@ +export LANG=en_US.UTF-8 export ZSH="/home/michael/.oh-my-zsh" ZSH_THEME="ys" @@ -43,3 +44,4 @@ alias kill-gpg-agent="gpgconf --kill gpg-agent" ced() { chezmoi edit $1 && chezmoi -v apply } cpush() { chezmoi git add . -- -A && chezmoi git commit -- -m "update" && chezmoi git push } +[ -f "${GHCUP_INSTALL_BASE_PREFIX:=$HOME}/.ghcup/env" ] && source "${GHCUP_INSTALL_BASE_PREFIX:=$HOME}/.ghcup/env"