X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/8e15d30089bdc7bf7b3d617cf5633b4568421228..9e568495ab9b4c7ddc4f2284577112641c57dedf:/rc.org diff --git a/rc.org b/rc.org index e144655..5327f2a 100644 --- a/rc.org +++ b/rc.org @@ -21,7 +21,7 @@ programs I use. :header-args+: :tangle ~/.config/bspwm/bspwmrc :shebang "#!/bin/sh" :END: -#+begin_src sh +#+begin_src sh :tangle no sxhkd & sh ~/.fehbg & xfce4-panel -d & @@ -85,7 +85,7 @@ bspc rule -a Zathura state=tiled :header-args+: :tangle ~/.config/sxhkd/sxhkdrc :END: -#+begin_src conf +#+begin_src conf :tangle no # # wm independent hotkeys # @@ -288,7 +288,7 @@ super + {Left,Down,Up,Right} :header-args+: :tangle ~/.config/compton.conf :END: -#+begin_src conf +#+begin_src conf :tangle no # Shadow shadow = false; # Enabled client-side shadows on windows. no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. @@ -643,14 +643,14 @@ timeout = 0 #+begin_src conf [user] name = Amin Bandali - email = amin@aminb.org - # signingkey = 4E05246AB0BF7FFB + email = mab@gnu.org + signingkey = 4E05246AB0BF7FFB #+end_src **** signing #+begin_src conf -# [commit] -# gpgsign = true +[commit] + gpgsign = true # [format] # signoff = true #+end_src @@ -718,6 +718,16 @@ timeout = 0 user = aminb #+end_src +**** send-email +#+begin_src conf +[sendemail] + smtpuser = aminb + smtpserver = fencepost.gnu.org + smtpserverport = 587 + smtpencryption = tls + annotate = yes +#+end_src + *** gitignore :PROPERTIES: :header-args+: :tangle ~/.gitignore_global @@ -733,6 +743,58 @@ timeout = 0 *-autoloads.el #+end_src +** [[https://github.com/Leinnan/i3gs][i3gs]] +:PROPERTIES: +:header-args+: :tangle ~/.config/i3gs/config +:END: + +#+begin_src conf :comments none +borders_width=0 0 2 0 +separator_width=10 + +#[mpd] +#preset=MPD +#title=  +#borders_color=#7FDBFF + +[ram] +preset=RAM +title=  +borders_color=#3D9970 + +#[cpu] +#preset=CPU +#title=  +#borders_color=#2ECC40 + +#[hdd] +#preset=HDD +#title=  +#borders_color=#01FF70 + +[volume] +command=volume-info +title= +borders_color=#7FDBFF + +[battery] +preset=BAT +command=battery-percentage-time +title=  +borders_color=#39CCCC + +[wifi] +preset=WIFI +title=  +borders_color=#01FF70 + +[date] +preset=DATE +command=date '+%-I:%M, %a %b %d ' +title=  +borders_color=#FFDC00 +separator_width=0 +#+end_src ** Latexmk :PROPERTIES: :header-args+: :tangle ~/.latexmkrc @@ -756,7 +818,8 @@ $clean_ext = "aux out"; Improve XPS 15 9560's touchpad experience. -#+begin_src conf :tangle (when (and (eq system-type 'gnu/linux) (string= (system-name) "plasma")) "/sudo::/etc/X11/xorg.conf.d/30-touchpad.conf") +# begin_src conf :tangle (when (and (eq system-type 'gnu/linux) (string= (system-name) "plasma")) "/sudo::/etc/X11/xorg.conf.d/30-touchpad.conf") +#+begin_src conf :tangle no Section "InputClass" Identifier "libinput touchpad catchall" Driver "libinput" @@ -1405,12 +1468,17 @@ passwordeval gpg2 --no-tty -q -d ~/.passwd/amin.gpg # gnu account gnu host fencepost.gnu.org -tls_fingerprint 95:B7:AC:05:37:97:F8:BE:0B:C0:71:4A:8A:4C:0B:A7:59:FD:2F:B8:93:C8:CC:B6:FF:82:83:90:CF:03:91:93 +# use `msmtp -a gnu --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint +tls_fingerprint 28:70:42:76:1C:EC:91:5F:D1:B3:27:A1:CD:3B:32:A4:8B:0B:DC:3A:CD:CA:F6:6F:E4:61:BA:69:D7:4D:0D:0B tls_starttls on from aminb@gnu.org user aminb passwordeval gpg2 --no-tty -q -d ~/.passwd/gnu.gpg +# gnu (new address) +account gnu-mab : gnu +from mab@gnu.org + # uwaterloo account uwaterloo host connect.uwaterloo.ca @@ -1420,10 +1488,6 @@ user abandali passwordeval gpg2 --no-tty -q -d ~/.passwd/uwaterloo.gpg tls_trust_file /etc/ssl/certs/ca-certificates.crt -# uwaterloo (friendly address) -account uwaterloo-friendly : uwaterloo -from amin.bandali@uwaterloo.ca - # Set a default account account default : aminb #+end_src @@ -2046,7 +2110,7 @@ path=/home/amin/mail [user] name=Amin Bandali primary_email=amin@aminb.org -other_email=abandali@uwaterloo.ca;amin.bandali@uwaterloo.ca;aminb@gnu.org; +other_email=abandali@uwaterloo.ca;mab@gnu.org;aminb@gnu.org; # Configuration for "notmuch new" # @@ -2132,26 +2196,59 @@ sieve-filter -eW -o postmaster_address=postmaster@aminb.org \ #+begin_src sh # apply sent tag to messages sent by me -notmuch tag -new +sent -- from:amin@aminb.org or from:aminb@gnu.org or from:abandali@uwaterloo.ca or from:amin.bandali@uwaterloo.ca +notmuch tag -new +sent -- from:amin@aminb.org or from:mab@gnu.org or from:aminb@gnu.org or from:abandali@uwaterloo.ca # initial tagging -notmuch tag +inbox +unread -new -- tag:new +notmuch tag -latest -- tag:latest +notmuch tag +inbox +unread +latest -new -- tag:new + # apply tags to lists -notmuch tag -inbox +lists/haskell-weekly -- folder:amin/lists/haskell-weekly + +# +notmuch tag -inbox +lists/~sircmpwn/srht-admins -- folder:amin/lists/~sircmpwn/srht-admins +notmuch tag -inbox +lists/~sircmpwn/srht-announce -- folder:amin/lists/~sircmpwn/srht-announce +notmuch tag -inbox +lists/~sircmpwn/srht-dev -- folder:amin/lists/~sircmpwn/srht-dev +notmuch tag -inbox +lists/~sircmpwn/srht-discuss -- folder:amin/lists/~sircmpwn/srht-discuss + notmuch tag -inbox +lists/hackernewsletter -- folder:amin/lists/hackernewsletter -notmuch tag -inbox +lists/emacs-devel -- folder:gnu/l/emacs-devel -notmuch tag -inbox +lists/guix-devel -- folder:gnu/l/guix-devel -notmuch tag -inbox +lists/guile-devel -- folder:gnu/l/guile-devel -notmuch tag -inbox +lists/info-gnu-emacs -- folder:gnu/l/info-gnu-emacs -notmuch tag -inbox +lists/help-gnu-emacs -- folder:gnu/l/help-gnu-emacs -notmuch tag -inbox +lists/www-commits -- folder:gnu/l/www-commits -notmuch tag -inbox +lists/www-discuss -- folder:gnu/l/www-discuss -notmuch tag -inbox +lists/fencepost-users -- folder:gnu/l/fencepost-users -notmuch tag -inbox +webmasters -- folder:gnu/webmasters -notmuch tag -inbox +lists/deepspec -- folder:gnu/l/deepspec -notmuch tag -inbox +lists/haskell-cafe -- folder:gnu/l/haskell-cafe -notmuch tag -inbox +lists/notmuch -- folder:gnu/l/notmuch +notmuch tag -inbox +lists/haskell-weekly -- folder:amin/lists/haskell-weekly + +notmuch tag -inbox +pay -- folder:amin/pay +# + +# +notmuch tag -inbox +uw/cs136 -- folder:uwaterloo/lists/cs136 +notmuch tag -inbox +uw/se463 -- folder:uwaterloo/lists/se463 + +notmuch tag -inbox +lists/clvsingle -- folder:uwaterloo/lists/Clvsingle +notmuch tag -inbox +lists/gsa -- folder:uwaterloo/lists/GSA +notmuch tag -inbox +lists/math-grad -- folder:uwaterloo/lists/Math-grad +notmuch tag -inbox +lists/scs-grads -- folder:uwaterloo/lists/scs-grads +notmuch tag -inbox +lists/watform-students -- folder:uwaterloo/lists/Watform-students +# + +# +notmuch tag -inbox +lists/emacs-devel -- folder:gnu/l/emacs-devel +notmuch tag -inbox +lists/emacs-orgmode -- folder:gnu/l/emacs-orgmode +notmuch tag -inbox +lists/emacsconf-discuss -- folder:gnu/l/emacsconf-discuss +notmuch tag -inbox +lists/fencepost-users -- folder:gnu/l/fencepost-users +notmuch tag -inbox +lists/guix-devel -- folder:gnu/l/guix-devel +notmuch tag -inbox +lists/guile-devel -- folder:gnu/l/guile-devel +notmuch tag -inbox +lists/help-gnu-emacs -- folder:gnu/l/help-gnu-emacs +notmuch tag -inbox +lists/info-gnu-emacs -- folder:gnu/l/info-gnu-emacs +notmuch tag -inbox +lists/www-commits -- folder:gnu/l/www-commits +notmuch tag -inbox +lists/www-discuss -- folder:gnu/l/www-discuss +notmuch tag -inbox +webmasters -- folder:gnu/webmasters + +notmuch tag -inbox +lists/deepspec -- folder:gnu/l/deepspec +notmuch tag -inbox +lists/haskell-cafe -- folder:gnu/l/haskell-cafe +notmuch tag -inbox +lists/haskell-art -- folder:gnu/l/haskell-art +notmuch tag -inbox +lists/notmuch -- folder:gnu/l/notmuch +# + +notmuch tag -inbox -unread +archive/notmuch -- path:archive/notmuch/** +notmuch tag -inbox -unread +archive/emacs-devel -- path:archive/emacs-devel/** #+end_src *** notmuch.service @@ -2312,15 +2409,18 @@ require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags", if anyof ( header :contains "list-id" "", + header :contains "list-id" "", + header :contains "list-id" "", + header :contains "list-id" "", header :contains "list-id" "", header :contains "list-id" "", header :contains "list-id" "", header :contains "list-id" "", header :contains "list-id" "", header :contains "list-id" "", - header :contains "list-id" "", header :contains "list-id" "", header :contains "list-id" "", + header :contains "list-id" "", header :contains "list-id" "") { if header :regex "list-id" "<([a-z_0-9-]+)[.@]" { set :lower "listname" "${1}"; @@ -3562,6 +3662,245 @@ switch="Alt+x" insert_pass="Alt+n" #+end_src +** sway +:PROPERTIES: +:header-args+: :tangle ~/.config/sway/config +:END: + +#+begin_src conf +exec xrdb .Xresources +exec dunst +### Variables +# super +set $mod Mod4 +# alt +set $mod2 Mod1 +set $left h +set $down j +set $up k +set $right l +set $term urxvt +set $menu rofi -show run -display-run '> ' -display-window ' 🗔 ' + +### Output configuration +# +# Default wallpaper (more resolutions are available in __DATADIR__/backgrounds/sway/) +output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +# +# Example configuration: +# +#exec swayidle \ +# timeout 300 'swaylock -c 000000' \ +# timeout 600 'swaymsg "output * dpms off"' \ +# resume 'swaymsg "output * dpms on"' \ +# before-sleep 'swaylock -c 000000' +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 600 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Input configuration + +input "1739:31251:DLL07BE:01_06CB:7A13_Touchpad" { + dwt enabled + tap enabled + natural_scroll enabled + middle_emulation enabled + click_method clickfinger +} + +input "1:1:AT_Translated_Set_2_keyboard" { + repeat_delay 200 + repeat_rate 45 + xkb_layout us,ir + xkb_options ctrl:nocaps,altwin:swap_alt_win,ctrl:rctrl_ralt,grp:shifts_toggle +} + + +### Key bindings +# +# Basics: +# + # start a terminal + bindsym $mod+Return exec $term + + # kill focused window + bindsym $mod+Shift+q kill + + # start your launcher + bindsym $mod+d exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # reload the configuration file + bindsym $mod+Shift+c reload + + # exit sway (logs you out of your wayland session) + bindsym $mod+Shift+e exit + + bindsym $mod+apostrophe exec rofi-light # rofi-based brightness chooser + bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness + bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness + + bindsym XF86AudioRaiseVolume exec pamixer --allow-boost --increase 5 + bindsym XF86AudioLowerVolume exec pamixer --allow-boost --decrease 5 + bindsym XF86AudioMute exec pamixer --toggle-mute + bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle + + # original sway workspace switch and window move + bindsym $mod+bracketleft workspace prev + bindsym $mod+bracketright workspace next + bindsym $mod+braceleft move container to workspace prev + bindsym $mod+braceright move container to workspace next + + # bspwm-esque workspace switch and window move + bindsym $mod2+bracketleft exec sway-ws-util switch prev + bindsym $mod2+bracketright exec sway-ws-util switch next + bindsym $mod2+braceleft exec sway-ws-util move prev follow + bindsym $mod2+braceright exec sway-ws-util move next follow +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # _move_ the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # switch to workspace + bindsym $mod+1 workspace 1 + bindsym $mod+2 workspace 2 + bindsym $mod+3 workspace 3 + bindsym $mod+4 workspace 4 + bindsym $mod+5 workspace 5 + bindsym $mod+6 workspace 6 + bindsym $mod+7 workspace 7 + bindsym $mod+8 workspace 8 + bindsym $mod+9 workspace 9 + bindsym $mod+0 workspace 10 + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace 1 + bindsym $mod+Shift+2 move container to workspace 2 + bindsym $mod+Shift+3 move container to workspace 3 + bindsym $mod+Shift+4 move container to workspace 4 + bindsym $mod+Shift+5 move container to workspace 5 + bindsym $mod+Shift+6 move container to workspace 6 + bindsym $mod+Shift+7 move container to workspace 7 + bindsym $mod+Shift+8 move container to workspace 8 + bindsym $mod+Shift+9 move container to workspace 9 + bindsym $mod+Shift+0 move container to workspace 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+Shift+r mode "resize" + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position bottom + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + } + status_command i3gs ~/.config/i3gs/config +} + +include /etc/sway/config.d/* +#+end_src + ** TLP *** TODO enigma @@ -3889,8 +4228,9 @@ RESTORE_DEVICE_STATE_ON_STARTUP=1 contrary, it's automatically sourced by LightDM, my display manager of choice. -#+begin_src sh +#+begin_src sh :tangle no xset -b # disable bell +xset r rate 200 45 # repeat delay (ms) and rate (repeats/sec) # setxkbmap -option compose:ralt @@ -4544,6 +4884,34 @@ Xfce's presentation mode which keeps the screen awake, and =rofi-light= a small utility that uses [[https://github.com/DaveDavenport/rofi][Rofi]] to ask and [[https://github.com/haikarainen/light][light]] to set an exact brightness value. +** battery-percentage-time +:PROPERTIES: +:header-args+: :tangle ~/.local/bin/battery-percentage-time :shebang "#!/bin/sh" +:END: + +#+begin_src sh +dbus_send() { + label=$1 + dbus-send --print-reply=literal --system \ + --dest=org.freedesktop.UPower \ + /org/freedesktop/UPower/devices/battery_BAT0 \ + org.freedesktop.DBus.Properties.Get \ + string:org.freedesktop.UPower.Device \ + string:"${label}" | awk '{print $3}' +} + +perc=$(dbus_send 'Percentage') +state=$(dbus_send 'State') + +if [ "$state" -eq 2 ]; then # Discharging + secs=$(dbus_send 'TimeToEmpty') +elif [ "$state" -eq 1 ]; then # Charging + secs=$(dbus_send 'TimeToFull') +fi + +printf '%s%%%%%2dh%02dm \n' "$perc" $((secs / 3600)) $((secs % 3600 / 60)) +#+end_src + ** rofi-light :PROPERTIES: :header-args+: :tangle ~/.local/bin/rofi-light :shebang "#!/bin/bash" @@ -4555,6 +4923,56 @@ val=$(rofi -dmenu -mesg "light $cur" -p "light -S " -l 0 -width 12) light -S $val #+end_src +** s (run sway) +:PROPERTIES: +:header-args+: :tangle ~/.local/bin/s :shebang "#!/bin/bash" +:END: + +#+begin_src bash +export _JAVA_AWT_WM_NONREPARENTING=1 +export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true' +light -Scrs "intel_backlight" 2 +source $HOME/.zprofile +sway +#+end_src + +** sway-ws-util +:PROPERTIES: +:header-args+: :tangle ~/.local/bin/sway-ws-util :shebang "#!/bin/bash" +:END: + +#+begin_src bash +curr_ws=$(swaymsg -t get_workspaces | jq -r '.[] | select(.focused==true).name') +[[ $curr_ws -eq 1 ]] && prev_ws=10 || prev_ws=$((curr_ws-1)) +[[ $curr_ws -eq 10 ]] && next_ws=1 || next_ws=$((curr_ws+1)) +dest_ws=-1 +op=-1 + +if [ "$1" = "switch" ] || [ "$1" = "move" ]; then + op="$1" + if [ "$2" = "prev" ]; then + dest_ws="$prev_ws" + elif [ "$2" = "next" ]; then + dest_ws="$next_ws" + else + echo "Usage: $0 $1 {prev|next} [follow]" + exit 1 + fi +else + echo "Usage: $0 {switch|move} {prev|next} [follow]" + exit 1 +fi + +if [ "$op" = "switch" ]; then + sway workspace "$dest_ws" +elif [ "$op" = "move" ]; then + sway move container to workspace "$dest_ws" + if [ "$3" = "follow" ]; then + sway workspace "$dest_ws" + fi +fi +#+end_src + ** toggle-layout :PROPERTIES: :header-args+: :tangle ~/.local/bin/toggle-layout :shebang "#!/bin/bash" @@ -4629,6 +5047,21 @@ import gnomekeyring as gk gk.unlock_sync('Default_keyring',gk.item_get_info_sync('login',1L).get_secret()) #+end_src +** volume-info +:PROPERTIES: +:header-args+: :tangle ~/.local/bin/volume-info :shebang "#!/bin/sh" +:END: + +#+begin_src sh +cur_vol=$(pamixer --get-volume) + +if [ $(pamixer --get-mute) = true ]; then + printf 'mt \n' "$cur_vol" +else + printf '%02d \n' "$cur_vol" +fi +#+end_src + ** wp My little wallpaper changer script.