X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/b1c9d0ec386e540754e816ad18d09f9238f67e08..e5e4450f889a82197d845cc06a63fcb3e740583d:/rc.org
diff --git a/rc.org b/rc.org
index 691480a..8533246 100644
--- a/rc.org
+++ b/rc.org
@@ -10,362 +10,16 @@ this file using =org-babel=.
Note: This file is best viewed inside Emacs with org mode.
* Configs
-
-This section contains the configuration files (dotfiles) of various
-programs I use.
-
-** compton
-:PROPERTIES:
-:header-args+: :tangle ~/.config/compton.conf
-:END:
-
-#+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.
-no-dnd-shadow = true; # Don't draw shadows on DND windows.
-clear-shadow = true; # Zero the part of the shadow's mask behind the
- # window. Fix some weirdness with ARGB windows.
-shadow-radius = 5; # The blur radius for shadows. (default 12)
-shadow-offset-x = -5; # The left offset for shadows. (default -15)
-shadow-offset-y = -5; # The top offset for shadows. (default -15)
-# shadow-opacity = 0.7; # The translucency for shadows. (default .75)
-# shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0)
-# shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0)
-# shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0)
-shadow-exclude = [ "n:e:Notification", "class_g = 'Chromium'", "class_g = 'Dmenu'", "class_g = 'Firefox' && argb" ]; # Exclude conditions for shadows.
-# shadow-exclude = "n:e:Notification";
-#shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c" ] # Fix dual shadow on some gtk3 powered applications
-shadow-ignore-shaped = true; # Avoid drawing shadow on all shaped windows
- # (see also: --detect-rounded-corners)
-
-# Opacity
-menu-opacity = 1.0; # The opacity for menus. (default 1.0)
-#inactive-opacity = 0.9; # Default opacity of inactive windows. (0.0 - 1.0)
-# active-opacity = 0.8; # Default opacity for active windows. (0.0 - 1.0)
-frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
-# inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides
- # value of _NET_WM_OPACITY. Bad choice.
-alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing
- # it may result in less X resource usage,
- # Yet fading may look bad.
-#inactive-dim = 0.5; # Dim inactive windows. (0.0 - 1.0)
-#inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity.
-# blur-background = true; # Blur background of transparent windows.
- # Bad performance with X Render backend.
- # GLX backend is preferred.
-# blur-background-frame = true; # Blur background of opaque windows with transparent
- # frames as well.
-blur-background-fixed = true; # Do not let blur radius adjust based on window opacity.
-blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
- # Exclude conditions for background blur.
-
-# Fading
-fading = false; # Fade windows during opacity changes.
-fade-delta = 3; # The time between steps in a fade in milliseconds. (default 10).
-fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028).
-fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03).
-# no-fading-openclose = true; # Avoid fade windows in/out when opening/closing.
-fade-exclude = [ ]; # Exclude conditions for fading.
-
-# Other
-backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically
- # much faster but depends on a sane driver.
-mark-wmwin-focused = true; # Try to detect WM windows and mark them as active.
-mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus).
-use-ewmh-active-win = true; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
- # instead of using FocusIn/Out events. Usually more reliable but
- # depends on a EWMH-compliant WM.
-detect-rounded-corners = false; # Detect rounded corners and treat them as rectangular when --shadow-ignore- shaped is on.
-detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window
- # managers not passing _NET_WM_OPACITY of client windows to frame
- # windows.
-refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto.
-vsync = "drm"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
- # See man page for more details.
-dbe = false; # Enable DBE painting mode. Rarely needed.
-paint-on-overlay = true; # Painting on X Composite overlay window. Recommended.
-sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate.
- # Incompatible with certain VSync methods.
-unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is
- # detected, to maximize performance for full-screen windows.
-focus-exclude = [ ]; # A list of conditions of windows that should always be considered
- # focused.
-detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in
- # the same group focused at the same time.
-detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows.
-invert-color-include = [ ]; # Conditions for windows to be painted with inverted color.
-
-# GLX backend # GLX backend fine-tune options. See man page for more info.
-glx-no-stencil = true; # Recommended.
-glx-copy-from-front = false; # Useful with --glx-swap-method,
-# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
-# glx-no-rebind-pixmap = true; # Recommended if it works.
-glx-no-rebind-pixmap = true; # Recommended if it works.
-#glx-swap-method = "4"; # See man page.
-glx-swap-method = "4"; # See man page.
-
-# Window type settings
-wintypes:
-{
- tooltip = { fade = true; shadow = false; opacity = 1; focus = true; };
- menu = { shadow = false; };
- dropdown_menu = { shadow = false; };
- popup_menu = { shadow = false; };
- utility = { shadow = false; };
- # fade: Fade the particular type of windows.
- # shadow: Give those windows shadow
- # opacity: Default opacity for the type of windows.
- # focus: Whether to always consider windows of this type focused.
-};
-#+end_src
-
-** dovecot
-:PROPERTIES:
-:header-args+: :tangle "/sudo::/etc/dovecot/dovecot.conf"
-:END:
-
-#+begin_src conf
-protocols = imap
-
-listen = 127.0.0.1
-log_path = /var/log/dovecot.log
-info_log_path = /var/log/dovecot-info.log
-
-ssl = no
-disable_plaintext_auth = no
-
-auth_verbose = yes
-auth_mechanisms = plain
-
-passdb {
- driver = passwd-file
- args = /etc/dovecot/passwd
-}
-
-userdb {
- driver = static
- args = uid=amin gid=amin home=/home/amin/mail/%d/%n
- default_fields = mail=maildir:/home/amin/mail/%d/%n/mail
-}
-
-# mail_home = /home/amin/mail/%d/%n
-# mail_location = maildir:/home/amin/mail/%d/%n/mail:LAYOUT=fs:INBOX=/home/amin/mail/%d/%n/mail/Inbox
-
-# namespace {
-# inbox = yes
-# separator = /
-# }
-
-mail_plugins = $mail_plugins fts fts_lucene
-
-plugin {
- fts = lucene
- fts_lucene = whitespace_chars=@.
- fts_autoindex = yes
-}
-#+end_src
-
-** Dunst
:PROPERTIES:
-:header-args+: :tangle ~/.config/dunst/dunstrc
+:header-args+: :comments no
:END:
-#+begin_src conf
-[global]
-#font = Ubuntu Mono 10.5
-font = Inconsolata 11
-
-# Path to default icons.
-icon_folders = /usr/share/icons/Moka/16x16/status/:/usr/share/icons/Moka/16x16/devices/:/usr/share/icons/Faba-Mono/16x16/status/:/usr/share/icons/Faba-Mono/16x16/devices/:/usr/share/icons/Moka/16x16/actions/:/usr/share/icons/Moka/16x16/categories/:/usr/share/icons/Moka/16x16/mimetypes/:/usr/share/icons/Moka/16x16/apps/:/usr/share/icons/Moka/16x16/places/:/usr/share/icons/Paper/16x16/status/
-
-icon_position = left
-# bold
-# italic
-# strikethrough
-# underline
-markup = full
-# The format of the message. Possible variables are:
-# %a appname
-# %s summary
-# %b body
-# %i iconname (including its path)
-# %I iconname (without its path)
-# %p progress value if set ([ 0%] to [100%]) or nothing
-# Markup is allowed
-format = "%s\n%b"
-# Sort messages by urgency
-sort = yes
-# Show how many messages are currently hidden (because of geometry)
-indicate_hiddenl= no
-# Alignment of message text.
-# Possible values are "left", "center" and "right"
-alignment = center
-# The frequency with wich text that is longer than the notification
-# window allows bounces back and forth.
-# This option conflicts with 'word_wrap'.
-# Set to 0 to disable
-bounce_freq = 3
-# show age of message if message is older than show_age_threshold seconds.
-# set to -1 to disable
-show_age_threshold = -1
-# split notifications into multiple lines if they don't fit into geometry
-word_wrap = yes
-# ignore newlines '\n' in notifications
-ignore_newline = no
-# The geometry of the message window.
-# geometry [{width}]x{height}][+/-{x}+/-{y}]
-# The height is measured in number of notifications everything else in pixels. If the width
-# is omitted but the height is given ("-geometry x2"), the message window
-# expands over the whole screen (dmenu-like). If width is 0,
-# the window expands to the longest message displayed.
-# A positive x is measured from the left, a negative from the
-# right side of the screen. Y is measured from the top and down respectevly.
-# The width can be negative. In this case the actual width is the
-# screen width minus the width defined in within the geometry option.
-#geometry = "410x12-12+12"
-#geometry = "0x0-30-30"
-geometry = "260x12-30-30"
-# The transparency of the window. range: [0; 100]
-# This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
-transparency = 0
-# Don't remove messages, if the user is idle (no mouse or keyboard input)
-# for longer than idle_threshold seconds.
-# Set to 0 to disable.
-idle_threshold = 120
-# Which monitor should the notifications be displayed on.
-monitor = 0
-# Display notification on focused monitor. Possible modes are:
-# mouse: follow mouse pointer
-# keyboard: follow window with keyboard focus
-# none: don't follow anything
-#
-# "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
-# This should be the case for almost all modern windowmanagers.
-#
-# If this option is set to mouse or keyboard, the monitor option will be
-# ignored.
-follow = keyboard
-# should a notification popped up from history be sticky or
-# timeout as if it would normally do.
-sticky_history = yes
-# The height of a single line. If the height is smaller than the font height,
-# it will get raised to the font height.
-# This adds empty space above and under the text.
-line_height = 0
-
-show_indicators = yes
-
-# Draw a line of 'separatpr_height' pixel height between two notifications.
-# Set to 0 to disable
-separator_height = 3
-# padding between text and separator
-padding = 8
-# horizontal padding
-horizontal_padding = 8
-# Define a color for the separator.
-# possible values are:
-# * auto: dunst tries to find a color fitting to the background
-# * foreground: use the same color as the foreground
-# * frame: use the same color as the frame.
-# * anything else will be interpreted as a X color
-separator_color = foreground
-# print a notification on startup
-# This is mainly for error detection, since dbus (re-)starts dunst
-# automatically after a crash.
-startup_notification = false
-# dmenu path
-#dmenu = /usr/bin/dmenu -p dunst:
-dmenu = /usr/bin/rofi -dmenu -p dunst:
-# browser for opening urls in context menu
-browser = /usr/bin/firefox -new-tab
-[frame]
-width = 0
-color = "#377222"
-[shortcuts]
-# shortcuts are specified as [modifier+][modifier+]...key
-# available modifiers are 'ctrl', 'mod1' (the alt-key), 'mod2', 'mod3'
-# and 'mod4' (windows-key)
-# xev might be helpful to find names for keys
-# close notification
-close = ctrl+space
-# close all notifications
-close_all = ctrl+shift+space
-# redisplay last message(s)
-# On the US keyboard layout 'grave' is normally above TAB and left of '1'.
-history = ctrl+shift+h
-# context menu
-context = ctrl+shift+period
-[urgency_low]
-# IMPORTANT: colors have to be defined in quotation marks.
-# Otherwise the '#' and following would be interpreted as a comment.
-background = "#1d2a30"
-foreground = "#71c2af"
-timeout = 3
-[urgency_normal]
-background = "#1d2a30"
-foreground = "#71c2af"
-timeout = 0
-[urgency_critical]
-background = "#1d2a30"
-foreground = "#ff9982"
-timeout = 0
-
-# Every section that isn't one of the above is interpreted as a rules
-# to override settings for certain messages.
-# Messages can be matched by 'appname', 'summary', 'body' or 'icon'
-# and you can override the 'timeout', 'urgency', 'foreground', 'background'
-# and 'format'.
-# Shell-like globbing will get expanded.
-#
-# SCRIPTING
-# you can specify a script that gets run when the rule matches by setting
-# the 'script' option.
-# The script will be called as follows:
-# script appname summary body icon urgency
-# where urgency can be "LOW", "NORMAL" or "CRITICAL".
-#
-# NOTE: if you don't want a notification to be displayed, set the format to ""
-# NOTE: It might be helpful to run dunst -print in a terminal in order to find
-# fitting options for rules.
-#[espeak]
-# summary = "*"
-# script = dunst_espeak.sh
-#[script-test]
-# summary = "*script*"
-# script = dunst_test.sh
-#[ignore]
-## This notification will not be displayed
-# summary = "foobar"
-# format = ""
-#[signed_on]
-# appname = Pidgin
-# summary = "*signed on*"
-# urgency = low
-#
-#[signed_off]
-# appname = Pidgin
-# summary = *signed off*
-# urgency = low
-#
-#[says]
-# appname = Pidgin
-# summary = *says*
-# urgency = critical
-#
-#[twitter]
-# appname = Pidgin
-# summary = *twitter.com*
-# urgency = normal
-#
-[xfpm-backlight]
- summary = *Brightness*
- urgency = low
-#+end_src
+This section contains the configuration files (dotfiles) of various
+programs I use besides GNU Emacs.
** Fontconfig
:PROPERTIES:
-:header-args+: :tangle ~/.config/fontconfig/fonts.conf :comments none
+:header-args+: :tangle ~/.config/fontconfig/fonts.conf
:END:
#+begin_src xml
@@ -410,10 +64,8 @@ timeout = 0
#+end_src
** getmail
-
-*** getmailrc
:PROPERTIES:
-:header-args+: :tangle ~/.getmail/getmailrc
+:header-args+: :tangle ~/.config/getmail/getmailrc
:END:
#+begin_src conf
@@ -421,153 +73,106 @@ timeout = 0
type = SimplePOP3SSLRetriever
server = fencepost.gnu.org
username = bandali
-password_command = ("gpg2", "--no-tty", "-q", "-d", "/home/amin/.passwd/gnu.gpg")
+password_command = ("gpg", "--no-tty", "-q", "-d", "/home/bandali/.passwd/gnu.gpg")
port = 995
use_apop = True
[destination]
type = Maildir
-path = ~/mail/gnu/Inbox/
-
-[options]
-delete = True
-#+end_src
-
-*** getmail.service
-:PROPERTIES:
-:header-args+: :tangle ~/.config/systemd/user/getmail.service
-:END:
-
-#+begin_src conf :tangle no
-[Unit]
-Description=getmail service
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/getmail
-StandardOutput=syslog
-StandardError=syslog
-#+end_src
-
-*** getmail.timer
-:PROPERTIES:
-:header-args+: :tangle ~/.config/systemd/user/getmail.timer
-:END:
-
-#+begin_src conf :tangle no
-[Unit]
-Description=getmail timer
+path = ~/mail/gnu.local/bandali/mail/
-[Timer]
-OnCalendar=*:0/30
-Persistent=true
-Unit=getmail.service
+# [destination]
+# type = MDA_external
+# path = /usr/lib/dovecot/deliver
+# arguments = ('-e', '-f', '%(sender)', '-d', 'bandali@gnu.local')
-[Install]
-WantedBy=timers.target
+[options]
+read_all = false
+delete_after = 1
+# delete = true
+received = false
+delivered_to = false
#+end_src
** Git
-*** gitconfig
+*** config
:PROPERTIES:
-:header-args+: :tangle ~/.gitconfig
+:header-args+: :tangle ~/.config/git/config
:END:
-**** user
#+begin_src conf
[user]
- name = Amin Bandali
- email = bandali@gnu.org
- signingkey = BE6273738E616D6D1B3A08E8A21A020248816103
-#+end_src
+ name = Amin Bandali
+ email = bandali@gnu.org
+ signingkey = BE6273738E616D6D1B3A08E8A21A020248816103
-**** signing
-#+begin_src conf
[commit]
- gpgsign = true
+ gpgsign = true
+
# [format]
-# signoff = true
-#+end_src
+# signoff = true
-**** core
-#+begin_src conf
[core]
- autocrlf = input # CRLF -> LF on commit
- editor = emacsclient -t
- excludesfile = ~/.gitignore_global
- pager = "less"
-#+end_src
+ autocrlf = input # CRLF -> LF on commit
+ editor = emacsclient -t
+ pager = "less"
-**** gpg
-#+begin_src conf
-[gpg]
- program = gpg2
-#+end_src
+[mailmap]
+ file = ~/.config/git/mailmap
-**** alias
-#+begin_src conf
[alias]
- git = !exec git # handle nested git calls, e.g. git git status
- aliases = config --get-regexp '^alias\\.'
- a = add
- s = status
- sl = status --long
- c = checkout
- cb = checkout -b
- b = branch
- r = rebase
- p = pull
- pr = pull --rebase
- ps = push
- psf = push --force
- nmam = "!f() { notmuch show --format=raw $1 | git am -; }; f"
- nmam3 = "!f() { notmuch show --format=raw $1 | git am -3 -; }; f"
-#+end_src
+ git = !exec git # handle nested git calls, e.g. git git status
+ aliases = config --get-regexp '^alias\\.'
+ a = add
+ s = status
+ sl = status --long
+ c = checkout
+ cb = checkout -b
+ b = branch
+ r = rebase
+ p = pull
+ pr = pull --rebase
+ ps = push
+ psf = push --force
+ nmam = "!f() { notmuch show --format=raw $1 | git am -; }; f"
+ nmam3 = "!f() { notmuch show --format=raw $1 | git am -3 -; }; f"
-**** color
-#+begin_src conf
[color]
- ui = auto
+ ui = auto
[color "status"]
- added = green bold
- changed = red bold
- untracked = red bold
+ added = green bold
+ changed = red bold
+ untracked = red bold
[color "branch"]
- current = green bold
- remote = magenta bold
+ current = green bold
+ remote = magenta bold
[color "diff"]
- new = green bold
- old = red bold
-#+end_src
+ new = green bold
+ old = red bold
-**** status
-#+begin_src conf
-[status]
- # showUntrackedFiles = all
- short=true
- branch=true
-#+end_src
+# [status]
+# # showUntrackedFiles = all
+# short=true
+# branch=true
-**** github
-#+begin_src conf
[github]
- user = aminb
-#+end_src
+ user = notbandali
-**** send-email
-#+begin_src conf
[sendemail]
smtpuser = bandali
smtpserver = fencepost.gnu.org
smtpserverport = 587
smtpencryption = tls
annotate = yes
+
+[transfer]
+ fsckObjects = true
#+end_src
-*** gitignore
+*** ignore
:PROPERTIES:
-:header-args+: :tangle ~/.gitignore_global
+:header-args+: :tangle ~/.config/git/ignore
:END:
#+begin_src conf
@@ -578,6 +183,20 @@ WantedBy=timers.target
.DS_Store
*.elc
*-autoloads.el
+TAGS
+#+end_src
+
+*** mailmap
+:PROPERTIES:
+:header-args+: :tangle ~/.config/git/mailmap
+:END:
+
+#+begin_src conf
+
+
+
+
+
#+end_src
** GnuPG
@@ -587,179 +206,345 @@ WantedBy=timers.target
#+begin_src conf
default-cache-ttl 43200
-max-cache-ttl 43200
+max-cache-ttl 86400
-default-cache-ttl-ssh 10800
-max-cache-ttl-ssh 10800
+default-cache-ttl-ssh 43200
+max-cache-ttl-ssh 86400
-# pinentry-program /usr/bin/pinentry-qt
+pinentry-program /home/bandali/.guix-profile/bin/pinentry-emacs
+allow-emacs-pinentry
+allow-loopback-pinentry
#+end_src
** GTK
-*** gtk-2.0
+*** GTK+ 2
:PROPERTIES:
:header-args+: :tangle ~/.gtkrc-2.0
:END:
#+begin_src conf
-gtk-theme-name="Greybird"
-gtk-icon-theme-name="Paper"
-gtk-font-name="Ubuntu 10"
+gtk-theme-name="Xfce"
+# gtk-icon-theme-name="elementary Xfce darker"
+gtk-font-name="Roboto 10"
+# gtk-font-name="Source Code Variable 10"
gtk-menu-images=0
# gtk-key-theme-name = "Emacs"
#+end_src
-*** gtk-3.0
+*** GTK+ 3
:PROPERTIES:
:header-args+: :tangle ~/.config/gtk-3.0/settings.ini
:END:
-#+begin_src conf :tangle no
+#+begin_src conf
[Settings]
-gtk-icon-theme-name = Paper
+gtk-icon-theme-name = Adwaita
# gtk-theme-name = Adwaita
-gtk-theme-name = Greybird
+gtk-theme-name = Xfce
# gtk-theme-name = Arc-Darker
# gtk-theme-name = Numix-ArchBlue
-gtk-font-name = Ubuntu 10
+gtk-font-name = Roboto 10
+# gtk-font-name = Source Code Variable Medium 10
# gtk-key-theme-name = Emacs
#+end_src
-** [[https://github.com/Leinnan/i3gs][i3gs]]
-:PROPERTIES:
-:header-args+: :tangle ~/.config/i3gs/config
-:END:
-
-#+begin_src conf :comments none :tangle no
-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
-
-** i3status
-:PROPERTIES:
-:header-args+: :tangle ~/.config/i3status/config
-:END:
-
-#+begin_src conf :comments none
-# i3status configuration file.
-# see "man i3status" for documentation.
-
-# It is important that this file is edited as UTF-8.
-# The following line should contain a sharp s:
-# Ã
-# If the above line is not correctly displayed, fix your editor first!
-
-general {
- colors = true
- interval = 5
- output_format = "i3bar"
-}
-
-# order += "ipv6"
-order += "disk /"
-order += "disk /data"
-order += "wireless _first_"
-order += "ethernet _first_"
-order += "battery 0"
-order += "volume master"
-order += "load"
-order += "tztime local"
-
-wireless _first_ {
- format_up = "W:%quality %essid %ip"
- format_down = "W: down"
-}
-
-ethernet _first_ {
- # if you use %speed, i3status requires root privileges
- format_up = "E: %ip (%speed)"
- format_down = "E: down"
-}
-
-battery 0 {
- format = "%status %percentage %remaining (%consumption)"
- path = "/sys/class/power_supply/BAT%d/uevent"
- low_threshold = "10"
- threshold_type = "percentage"
- last_full_capacity = true
- integer_battery_capacity = true
- hide_seconds = true
-}
-
-tztime local {
- format = "%-I:%M%P %a %b %d"
-}
-
-volume master {
- format = "⪠%volume"
- format_muted = "ð %volume"
- device = "pulse"
-}
-
-load {
- format = "%1min"
-}
-
-disk "/" {
- format = "/ %avail"
-}
-
-disk "/data" {
- format = "/data %avail"
-}
+** Guix
+
+*** Channels
+:PROPERTIES:
+:header-args+: :tangle ~/.config/guix/channels.scm
+:END:
+
+#+begin_src scheme
+(list (channel
+ (name 'guix) ; https://git.savannah.gnu.org/git/guix.git
+ (url "file:///home/bandali/src/git/guix"))
+ (channel
+ (name 'guix-bandali) ; https://git.sr.ht/~bandali/guix-bandali
+ (url "file:///home/bandali/src/git/guix-bandali")))
+#+end_src
+
+*** Profile manifests
+
+To install/update the packages of the default profile, use
+#+begin_example
+guix package -m $MY_GUIX_MANIFESTS/main.scm
+#+end_example
+and for other profiles, use
+#+begin_example
+guix package -m $MY_GUIX_MANIFESTS/name.scm -p $MY_GUIX_PROFILES/name/name
+#+end_example
+where =name= is the name of the profile (e.g. =doc=, =media=, ...).
+
+**** doc
+:PROPERTIES:
+:header-args+: :tangle ~/.config/guix/manifest/doc.scm
+:END:
+
+#+begin_src scheme
+(specifications->manifest
+ '("libreoffice"
+ "texlive-amsfonts"
+ "texlive-base"
+ "texlive-latex-listings"
+ ;; "texlive-palatino"
+ "texlive-xcolor"
+))
+#+end_src
+
+**** main
+:PROPERTIES:
+:header-args+: :tangle ~/.config/guix/manifest/main.scm
+:END:
+
+#+begin_src scheme
+(specifications->manifest
+ '("alsa-utils"
+ "bash-completion"
+ "cpufrequtils"
+ "cpupower"
+ "cvs"
+ "dunst"
+ "emacs"
+ "emacs-alert"
+ "emacs-amx"
+ "emacs-async"
+ "emacs-biblio-git"
+ "emacs-boxquote"
+ "emacs-company"
+ "emacs-company-ebdb"
+ "emacs-crux"
+ "emacs-dash"
+ "emacs-debbugs"
+ "emacs-diff-hl"
+ "emacs-dmenu"
+ "emacs-doom-themes"
+ "emacs-ebdb"
+ "emacs-emmet-mode"
+ ;; "emacs-emojify"
+ "emacs-erc-hl-nicks"
+ "emacs-erc-scrolltoplace"
+ "emacs-eshell-up"
+ "emacs-exec-path-from-shell"
+ "emacs-expand-region"
+ "emacs-exwm"
+ "emacs-exwm-edit"
+ "emacs-flycheck"
+ "emacs-geiser"
+ ;; "emacs-gnus-harvest"
+ "emacs-guix"
+ "emacs-helpful"
+ "emacs-hl-todo"
+ "emacs-ivy"
+ "emacs-magit"
+ "emacs-message-x"
+ "emacs-minions"
+ ;; "emacs-multi-term"
+ "emacs-multiple-cursors"
+ "emacs-mwim"
+ ;; "emacs-next"
+ ;; "emacs-next-delight"
+ "emacs-no-littering"
+ "emacs-org"
+ "emacs-org-contrib"
+ "emacs-org-ref"
+ "emacs-orgalist"
+ "emacs-page-break-lines"
+ "emacs-pass"
+ "emacs-pinentry"
+ "emacs-projectile"
+ "emacs-shrink-path-git"
+ "emacs-smart-mode-line"
+ "emacs-typo"
+ "emacs-unkillable-scratch"
+ "emacs-use-package"
+ "emacs-web-mode"
+ "emacs-which-key"
+ "emacs-yasnippet"
+ "emacs-znc-git"
+ "font-adobe-source-code-pro"
+ "font-gnu-freefont-ttf"
+ "font-google-roboto"
+ "font-liberation"
+ "font-linuxlibertine"
+ "font-sil-gentium"
+ "font-tex-gyre"
+ ;; "font-ubuntu"
+ "font-vazir"
+ "getmail"
+ "gettext"
+ "git"
+ "git:send-email"
+ "gnupg"
+ "guile"
+ "haunt"
+ "htop"
+ "hunspell"
+ "hunspell-dict-en-ca"
+ "hunspell-dict-en-us"
+ "isync"
+ "light"
+ "msmtp"
+ "ncdu"
+ "notmuch"
+ "openjdk"
+ "openssh"
+ "openssl"
+ "pass-otp"
+ "password-store"
+ "pasystray"
+ "pinentry-emacs"
+ "poppler" ; for 'pdffonts'
+ "rofi"
+ "rofi-pass"
+ "rsync"
+ "rxvt-unicode"
+ "screen"
+ "scrot"
+ "setxkbmap"
+ "strace"
+ "thinkfan"
+ "unzip"
+ "wget"
+ "xdg-user-dirs"
+ ;; "xkbcomp"
+ "xmodmap"
+ "xrdb"
+ "xset"
+ "xsetroot"))
+#+end_src
+
+**** media
+:PROPERTIES:
+:header-args+: :tangle ~/.config/guix/manifest/media.scm
+:END:
+
+#+begin_src scheme
+(specifications->manifest
+ '("audacity"
+ "gimp"
+ "inkscape"
+ "mpv"
+ "youtube-dl"))
+#+end_src
+
+**** web
+:PROPERTIES:
+:header-args+: :tangle ~/.config/guix/manifest/web.scm
+:END:
+
+#+begin_src scheme
+(specifications->manifest
+ '("icecat"
+ "rtv"))
+#+end_src
+
+*** Systems
+
+**** chaman
+:PROPERTIES:
+:header-args+: :tangle ~/.config/guix/system/chaman.scm
+:END:
+
+#+begin_src scheme
+(use-modules (gnu)
+ (gnu packages certs) ; for nss-certs
+ (gnu packages emacs-xyz) ; for exwm
+ (gnu packages linux)) ; for powertop
+(use-service-modules admin desktop mail networking pm ssh xorg)
+
+(operating-system
+ (host-name "chaman")
+ (locale "en_CA.utf8")
+ (timezone "Canada/Eastern")
+ (keyboard-layout
+ (keyboard-layout "us" "basic"))
+ (bootloader
+ (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target "/dev/sda")
+ (keyboard-layout keyboard-layout)))
+ (mapped-devices
+ (list (mapped-device
+ (source
+ (uuid "283da85e-2c84-47e6-a8ca-20f4e8efb806"))
+ (target "groot")
+ (type luks-device-mapping))
+ (mapped-device
+ (source
+ (uuid "017ddebc-c2c3-4a0a-bda4-d47ec0bc67f0"))
+ (target "data")
+ (type luks-device-mapping))))
+ (file-systems
+ (cons* (file-system
+ (mount-point "/")
+ (device "/dev/mapper/groot")
+ (type "ext4")
+ (dependencies mapped-devices))
+ (file-system
+ (mount-point "/data")
+ (device "/dev/mapper/data")
+ (type "ext4")
+ (dependencies mapped-devices))
+ %base-file-systems))
+ (users
+ (cons* (user-account
+ (name "bandali")
+ (group "users")
+ (home-directory "/home/bandali")
+ (supplementary-groups
+ '("wheel" "netdev" "audio" "video")))
+ %base-user-accounts))
+ (packages
+ (cons* nss-certs
+ emacs-exwm
+ %base-packages))
+ (services
+ (cons*
+ (service xfce-desktop-service-type)
+ (set-xorg-configuration
+ (xorg-configuration
+ (keyboard-layout keyboard-layout)))
+ (dovecot-service
+ #:config
+ (dovecot-configuration
+ ;; (log-path "/dev/stderr")
+ (protocols (list (protocol-configuration
+ (name "imap"))))
+ (ssl? "no")
+ (listen '("127.0.0.1"))
+ (disable-plaintext-auth? #f)
+ (auth-mechanisms '("plain"))
+ (postmaster-address "bandali@gnu.local")
+ (mail-location "maildir:/home/bandali/mail/%d/%n/mail")
+ (userdbs (list (userdb-configuration
+ (driver "static")
+ (args (list "uid=bandali" "gid=users" "home=/home/bandali/mail/%d/%n")))))
+ (passdbs (list (passdb-configuration
+ (driver "passwd-file")
+ (args (list "/data/dovecot-passwd")))))))
+ (service rottlog-service-type)
+ (service thermald-service-type)
+ (service tlp-service-type
+ (tlp-configuration
+ (cpu-boost-on-ac? #t)
+ (sound-power-save-on-bat 0)
+ (sound-power-save-controller? #f)
+ ;; (usb-blacklist "0e8f:00a8") ;for some reason doesn't seem to work
+ (usb-autosuspend? #f)))
+ (simple-service 'my-powertop-auto-tune activation-service-type
+ #~(zero? (system* #$(file-append powertop "/sbin/powertop")
+ "--auto-tune")))
+ (simple-service 'light-udev-rules udev-service-type (list light))
+ %desktop-services)))
#+end_src
** isync
-
-*** mbsyncrc
:PROPERTIES:
-:header-args+: :tangle ~/.mbsyncrc
+:header-args+: :tangle ~/.config/isync/mbsyncrc
:END:
#+begin_src conf
@@ -769,28 +554,53 @@ Create Both
Expunge Both
######
-IMAPAccount amin
-Host mail.aminb.org
-User amin@aminb.org
-PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/amin.gpg"
+IMAPAccount shemshak
+Host mail.shemshak.org
+User amin@shemshak.org
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/shemshak.gpg"
+SSLType IMAPS
+
+IMAPStore shemshak-remote
+Account shemshak
+
+IMAPAccount shemshak-local
+Host 127.0.0.1
+Port 143
+User amin@shemshak.local
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/shemshak-local.gpg"
+SSLType None
+
+IMAPStore shemshak-local
+Account shemshak-local
+
+Channel shemshak
+Master :shemshak-remote:
+Slave :shemshak-local:
+Patterns *
+
+######
+IMAPAccount gnub
+Host mail.shemshak.org
+User gnu@bandali.eu.org
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/gnub.gpg"
SSLType IMAPS
-IMAPStore amin-remote
-Account amin
+IMAPStore gnub-remote
+Account gnub
-IMAPAccount amin-dovecot
+IMAPAccount gnub-local
Host 127.0.0.1
Port 143
-User amin@aminb.org
-PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/amin-dovecot.gpg"
+User bandali@gnu.local
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/gnub-local.gpg"
SSLType None
-IMAPStore amin-local
-Account amin-dovecot
+IMAPStore gnub-local
+Account gnub-local
-Channel amin
-Master :amin-remote:
-Slave :amin-local:
+Channel gnub
+Master :gnub-remote:
+Slave :gnub-local:
Patterns *
######
@@ -803,59 +613,50 @@ SSLType IMAPS
IMAPStore uwaterloo-remote
Account uwaterloo
-IMAPAccount uwaterloo-dovecot
+IMAPAccount uwaterloo-local
Host 127.0.0.1
Port 143
-User abandali@uwaterloo.ca
-PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/uwaterloo-dovecot.gpg"
+User abandali@uw.local
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/uwaterloo-local.gpg"
SSLType None
IMAPStore uwaterloo-local
-Account uwaterloo-dovecot
+Account uwaterloo-local
Channel uwaterloo
Master :uwaterloo-remote:
Slave :uwaterloo-local:
Patterns *
-#+end_src
-
-*** mbsync.service
-:PROPERTIES:
-:header-args+: :tangle ~/.config/systemd/user/mbsync.service
-:END:
-
-#+begin_src conf :tangle no
-[Unit]
-Description=mbsync service
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/mbsync -Va
-StandardOutput=syslog
-StandardError=syslog
-#+end_src
+######
+IMAPAccount csclub
+Host mail.csclub.uwaterloo.ca
+User abandali
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/csclub.gpg"
+SSLType IMAPS
-*** mbsync.timer
-:PROPERTIES:
-:header-args+: :tangle ~/.config/systemd/user/mbsync.timer
-:END:
+IMAPStore csclub-remote
+Account csclub
-#+begin_src conf :tangle no
-[Unit]
-Description=mbsync timer
+IMAPAccount csclub-local
+Host 127.0.0.1
+Port 143
+User abandali@csc.uw.local
+PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/csclub-local.gpg"
+SSLType None
-[Timer]
-OnCalendar=*:0/15
-Persistent=true
-Unit=mbsync.service
+IMAPStore csclub-local
+Account csclub-local
-[Install]
-WantedBy=timers.target
+Channel csclub
+Master :csclub-remote:
+Slave :csclub-local:
+Patterns *
#+end_src
** Latexmk
:PROPERTIES:
-:header-args+: :tangle ~/.latexmkrc
+:header-args+: :tangle ~/.config/latexmk/latexmkrc
:END:
#+begin_src conf
@@ -872,23 +673,6 @@ $clean_ext = "aux out";
# $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S';
#+end_src
-** libinput
-
-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 no
-Section "InputClass"
- Identifier "libinput touchpad catchall"
- Driver "libinput"
- MatchIsTouchpad "on"
- Option "ClickMethod" "clickfinger"
- Option "NaturalScrolling" "true"
- Option "Tapping" "on"
- Option "TappingButtonMap" "lrm"
-EndSection
-#+end_src
-
** mpd
:PROPERTIES:
:header-args+: :tangle ~/.config/mpd/mpd.conf
@@ -1306,7 +1090,7 @@ audio_output {
** msmtp
:PROPERTIES:
-:header-args+: :tangle ~/.msmtprc
+:header-args+: :tangle ~/.config/msmtp/config
:END:
#+begin_src conf
@@ -1318,48 +1102,60 @@ auth on
#tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
-# aminb
-account aminb
-host mail.aminb.org
-# use `msmtp -a aminb --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint
-tls_fingerprint C7:A4:2E:A3:11:FA:80:45:C4:29:D6:62:4D:73:DB:34:43:67:8F:16:F1:2E:54:43:06:1B:41:B6:A9:09:E0:37
+account shemshak
+host mail.shemshak.org
+# use `msmtp -a shemshak --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint
+tls_fingerprint 01:6F:1B:92:0A:E8:47:35:62:80:DD:17:F5:9A:9D:26:7D:59:E2:EC:69:67:36:69:2F:58:8C:89:57:66:F6:B1
tls_starttls on
-from amin@aminb.org
-user amin@aminb.org
-passwordeval gpg2 --no-tty -q -d ~/.passwd/amin.gpg
+from amin@shemshak.org
+user amin@shemshak.org
+passwordeval gpg --no-tty -q -d ~/.passwd/shemshak.gpg
-account bandali-me : aminb
-from amin@bandali.me
+account aminb : shemshak
+from amin@aminb.org
+account bndl : shemshak
+from amin@bndl.org
-# gnu
account gnu
host fencepost.gnu.org
# use `msmtp -a gnu --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint
-tls_fingerprint 93:59:52:1D:A6:95:13:31:7C:81:ED:DB:A5:BA:B5:2B:C8:BC:38:3E:71:A5:DF:8C:80:46:C1:E0:5D:2D:F4:E3
+tls_fingerprint A5:E9:14:9F:46:3E:8E:0F:09:8C:5D:21:C2:BE:DE:77:BE:8B:E7:82:6C:56:78:0C:62:CA:46:D7:18:FE:33:05
tls_starttls on
from bandali@gnu.org
user bandali
-passwordeval gpg2 --no-tty -q -d ~/.passwd/gnu.gpg
+passwordeval gpg --no-tty -q -d ~/.passwd/gnu.gpg
-# gnu (old)
+account gnu-mab : gnu
+from mab@gnu.org
account gnu-aminb : gnu
from aminb@gnu.org
account gnu-amin : gnu
from amin@gnu.org
-account gnu-mab : gnu
-from mab@gnu.org
-# uwaterloo
account uwaterloo
host connect.uwaterloo.ca
tls_starttls on
from abandali@uwaterloo.ca
user abandali
-passwordeval gpg2 --no-tty -q -d ~/.passwd/uwaterloo.gpg
+passwordeval gpg --no-tty -q -d ~/.passwd/uwaterloo.gpg
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
+
+account uwaterloo-friendly : uwaterloo
+from bandali@uwaterloo.ca
+
+account csclub
+host mail.csclub.uwaterloo.ca
+tls_starttls on
+from abandali@csclub.uwaterloo.ca
+user abandali
+passwordeval gpg --no-tty -q -d ~/.passwd/csclub.gpg
tls_trust_file /etc/ssl/certs/ca-certificates.crt
+account csclub-friendly : csclub
+from bandali@csclub.uwaterloo.ca
+
# Set a default account
-account default : aminb
+account default : shemshak
#+end_src
** ncmpcpp
@@ -1939,233 +1735,10 @@ def_key "K"
move_sort_order_up
#+end_src
-** notmuch
-
-*** notmuch-config
-:PROPERTIES:
-:header-args+: :tangle ~/.notmuch-config
-:END:
-
-#+begin_src conf
-# .notmuch-config - Configuration file for the notmuch mail system
-#
-# For more information about notmuch, see https://notmuchmail.org
-
-# Database configuration
-#
-# The only value supported here is 'path' which should be the top-level
-# directory where your mail currently exists and to where mail will be
-# delivered in the future. Files should be individual email messages.
-# Notmuch will store its database within a sub-directory of the path
-# configured here named ".notmuch".
-#
-[database]
-path=/home/amin/oldmail
-
-# User configuration
-#
-# Here is where you can let notmuch know how you would like to be
-# addressed. Valid settings are
-#
-# name Your full name.
-# primary_email Your primary email address.
-# other_email A list (separated by ';') of other email addresses
-# at which you receive email.
-#
-# Notmuch will use the various email addresses configured here when
-# formatting replies. It will avoid including your own addresses in the
-# recipient list of replies, and will set the From address based on the
-# address to which the original email was addressed.
-#
-[user]
-name=Amin Bandali
-primary_email=amin@aminb.org
-other_email=bandali@gnu.org;abandali@uwaterloo.ca;
-
-# Configuration for "notmuch new"
-#
-# The following options are supported here:
-#
-# tags A list (separated by ';') of the tags that will be
-# added to all messages incorporated by "notmuch new".
-#
-# ignore A list (separated by ';') of file and directory names
-# that will not be searched for messages by "notmuch new".
-#
-# NOTE: *Every* file/directory that goes by one of those
-# names will be ignored, independent of its depth/location
-# in the mail store.
-#
-[new]
-tags=new;
-#tags=unread;inbox;
-ignore=.uidvalidity;.mbsyncstate;/.*/dovecot*/
-
-# Search configuration
-#
-# The following option is supported here:
-#
-# exclude_tags
-# A ;-separated list of tags that will be excluded from
-# search results by default. Using an excluded tag in a
-# query will override that exclusion.
-#
-[search]
-exclude_tags=deleted;spam;
-
-# Maildir compatibility configuration
-#
-# The following option is supported here:
-#
-# synchronize_flags Valid values are true and false.
-#
-# If true, then the following maildir flags (in message filenames)
-# will be synchronized with the corresponding notmuch tags:
-#
-# Flag Tag
-# ---- -------
-# D draft
-# F flagged
-# P passed
-# R replied
-# S unread (added when 'S' flag is not present)
-#
-# The "notmuch new" command will notice flag changes in filenames
-# and update tags, while the "notmuch tag" and "notmuch restore"
-# commands will notice tag changes and update flags in filenames
-#
-[maildir]
-synchronize_flags=true
-
-# Cryptography related configuration
-#
-# The following option is supported here:
-#
-# gpg_path
-# binary name or full path to invoke gpg.
-#
-[crypto]
-gpg_path=gpg
-#+end_src
-
-*** pre-new hook
-:PROPERTIES:
-:header-args+: :tangle ~/mail/.notmuch/hooks/pre-new :shebang "#!/bin/sh"
-:END:
-
-#+begin_src sh
-touch /tmp/gnusieve.log
-sieve-filter -eW -o postmaster_address=postmaster@aminb.org \
- -o mail_location=maildir:$MAILDIR/gnu:LAYOUT=fs:INBOX=$MAILDIR/gnu/Inbox ~/sieve/gnu.sieve INBOX delete &>>/tmp/gnusieve.log
-#+end_src
-
-*** post-new hook
-:PROPERTIES:
-:header-args+: :tangle ~/mail/.notmuch/hooks/post-new :shebang "#!/bin/sh"
-:END:
-
-#+begin_src sh
-# apply sent tag to messages sent by me
-notmuch tag -new +sent -- from:amin@aminb.org or from:bandali@gnu.org or from:aminb@gnu.org or from:amin@gnu.org or from:mab@gnu.org or from:abandali@uwaterloo.ca
-
-# initial tagging
-notmuch tag -latest -- tag:latest
-notmuch tag +inbox +unread +latest -new -- tag:new
-
-
-# apply tags to lists
-
-#
-notmuch tag -inbox +lists/hackernewsletter -- folder:amin/lists/hackernewsletter
-notmuch tag -inbox +lists/haskell-weekly -- folder:amin/lists/haskell-weekly
-
-notmuch tag -inbox +pay -- folder:amin/pay
-notmuch tag -inbox +banking -- folder:amin/banking
-notmuch tag -inbox +work -- folder:amin/work
-#
-
-#
-notmuch tag -inbox +uw/cs136 -- folder:uwaterloo/lists/cs136
-notmuch tag -inbox +uw/cs846 -- folder:uwaterloo/lists/cs846
-notmuch tag -inbox +uw/ece750 -- folder:uwaterloo/lists/ece750
-notmuch tag -inbox +uw/se212 -- folder:uwaterloo/lists/se212
-notmuch tag -inbox +uw/se463 -- folder:uwaterloo/lists/se463
-
-notmuch tag -inbox +lists/alloytools -- folder:uwaterloo/lists/alloytools
-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 +l/emacs-devel -- folder:gnu/l/emacs-devel
-notmuch tag -inbox +l/emacs-orgmode -- folder:gnu/l/emacs-orgmode
-notmuch tag -inbox +l/emacsconf-discuss -- folder:gnu/l/emacsconf-discuss
-notmuch tag -inbox +l/fencepost-users -- folder:gnu/l/fencepost-users
-notmuch tag -inbox +l/guix-devel -- folder:gnu/l/guix-devel
-notmuch tag -inbox +l/guile-devel -- folder:gnu/l/guile-devel
-notmuch tag -inbox +l/help-gnu-emacs -- folder:gnu/l/help-gnu-emacs
-notmuch tag -inbox +l/info-gnu-emacs -- folder:gnu/l/info-gnu-emacs
-notmuch tag -inbox +l/www-commits -- folder:gnu/l/www-commits
-notmuch tag -inbox +l/www-discuss -- folder:gnu/l/www-discuss
-notmuch tag -inbox +webmasters -- folder:gnu/webmasters
-
-notmuch tag -inbox +l/deepspec -- folder:gnu/l/deepspec
-notmuch tag -inbox +l/haskell-cafe -- folder:gnu/l/haskell-cafe
-notmuch tag -inbox +l/haskell-art -- folder:gnu/l/haskell-art
-notmuch tag -inbox +l/notmuch -- folder:gnu/l/notmuch
-
-notmuch tag -inbox +l/~aminb/test-priv -- folder:gnu/l/~aminb/test-priv
-notmuch tag -inbox +l/~sircmpwn/sr.ht-admins -- folder:gnu/l/~sircmpwn/sr.ht-admins
-notmuch tag -inbox +l/~sircmpwn/sr.ht-announce -- folder:gnu/l/~sircmpwn/sr.ht-announce
-notmuch tag -inbox +l/~sircmpwn/sr.ht-dev -- folder:gnu/l/~sircmpwn/sr.ht-dev
-notmuch tag -inbox +l/~sircmpwn/sr.ht-discuss -- folder:gnu/l/~sircmpwn/sr.ht-discuss
-#
-
-notmuch tag -inbox -unread +archive/notmuch -- path:archive/notmuch/**
-notmuch tag -inbox -unread +archive/emacs-devel -- path:archive/emacs-devel/**
-#+end_src
-
-*** notmuch.service
-:PROPERTIES:
-:header-args+: :tangle ~/.config/systemd/user/notmuch.service
-:END:
-
-#+begin_src conf :tangle no
-[Unit]
-Description=notmuch service
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/notmuch new
-StandardOutput=syslog
-StandardError=syslog
-#+end_src
-
-*** notmuch.timer
-:PROPERTIES:
-:header-args+: :tangle ~/.config/systemd/user/notmuch.timer
-:END:
-
-#+begin_src conf :tangle no
-[Unit]
-Description=notmuch timer
-
-[Timer]
-OnCalendar=*:0/5
-Persistent=true
-Unit=notmuch.service
-
-[Install]
-WantedBy=timers.target
-#+end_src
-
** pigeonhole
*** amin.sieve
:PROPERTIES:
-:header-args+: :tangle ~/mail/aminb.org/amin/sieve/amin.sieve :comments none
+:header-args+: :tangle ~/mail/bndl.org/amin/sieve/amin.sieve :comments none
:END:
#+begin_src conf
@@ -2184,7 +1757,7 @@ include :personal "lists";
*** lists.sieve
:PROPERTIES:
-:header-args+: :tangle ~/mail/aminb.org/amin/sieve/lists.sieve :comments none
+:header-args+: :tangle ~/mail/bndl.org/amin/sieve/lists.sieve :comments none
:END:
#+begin_src conf
@@ -2235,126 +1808,56 @@ if anyof (
}
#+end_src
-** PowerTOP
+** Readline
:PROPERTIES:
-:header-args+: :tangle "/sudo::/etc/systemd/system/powertop.service"
+:header-args+: :tangle ~/.config/readline/inputrc
:END:
#+begin_src conf
-[Unit]
-Description=Powertop tunings
+set enable-bracketed-paste on
-[Service]
-ExecStart=/usr/bin/powertop --auto-tune
-RemainAfterExit=true
+set colored-stats on
+set colored-completion-prefix on
+set completion-ignore-case on
+set menu-complete-display-prefix on
+set page-completions off
+set show-all-if-ambiguous on
+set show-all-if-unmodified on
+set visible-stats on
-[Install]
-WantedBy=multi-user.target
+TAB: menu-complete
+"\e[Z": menu-complete-backward
+
+"\e[A": history-search-backward
+"\e[B": history-search-forward
#+end_src
-** redshift
+** rofi
:PROPERTIES:
-:header-args+: :tangle ~/.config/redshift.conf :comments none
+:header-args+: :tangle ~/.config/rofi/config
:END:
#+begin_src conf
-; Global settings for redshift
-[redshift]
-; Set the day and night screen temperatures (Neutral is 6500K)
-;temp-day=5700
-;temp-night=3500
+! rofi.font: Ubuntu Mono 13
+! rofi.font: Inconsolata 16
+! rofi.font: Iosevka 13
+! rofi.font: Source Code Pro 11
+rofi.font: Source Code Pro 10.5
+rofi.modi: run,window
+! rofi.width: 640
+rofi.width: 600
+!rofi.location: 2
+!rofi.yoffset: 200
+rofi.monitor: -1
+!rofi.lines: 10
-;temp-day=6500
-temp-day=6200
-;temp-night=4800
-;temp-night=5000
-;temp-night=4500
-temp-night=4000
+rofi.theme: ~/.guix-profile/share/rofi/themes/gruvbox-light-hard.rasi
+#+end_src
-; Enable/Disable a smooth transition between day and night
-; 0 will cause a direct change from day to night screen temperature.
-; 1 will gradually increase or decrease the screen temperature.
-transition=1
-
-; Set the screen brightness. Default is 1.0.
-;brightness=0.9
-; It is also possible to use different settings for day and night
-; since version 1.8.
-;brightness-day=0.7
-;brightness-night=0.4
-; Set the screen gamma (for all colors, or each color channel
-; individually)
-;gamma=0.8
-;gamma=1.0
-;gamma=0.8:0.7:0.8
-; This can also be set individually for day and night since
-; version 1.10.
-;gamma-day=0.8:0.7:0.8
-;gamma-night=0.6
-
-; Set the location-provider: 'geoclue2' or 'manual'
-; type 'redshift -l list' to see possible values.
-; The location provider settings are in a different section.
-;location-provider=manual
-location-provider=geoclue2
-
-; Set the adjustment-method: 'randr', 'vidmode'
-; type 'redshift -m list' to see all possible values.
-; 'randr' is the preferred method, 'vidmode' is an older API.
-; but works in some cases when 'randr' does not.
-; The adjustment method settings are in a different section.
-adjustment-method=randr
-
-; Configuration of the location-provider:
-; type 'redshift -l PROVIDER:help' to see the settings.
-; ex: 'redshift -l manual:help'
-; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
-; are negative numbers.
-;[manual]
-;lat=48.1
-;lon=11.6
-
-; Configuration of the adjustment-method
-; type 'redshift -m METHOD:help' to see the settings.
-; ex: 'redshift -m randr:help'
-; In this example, randr is configured to adjust screen 1.
-; Note that the numbering starts from 0, so this is actually the
-; second screen. If this option is not specified, Redshift will try
-; to adjust _all_ screens.
-;[randr]
-;screen=1
-#+end_src
-
-** rofi
-:PROPERTIES:
-:header-args+: :tangle ~/.config/rofi/config
-:END:
-
-#+begin_src conf
-! rofi.font: Ubuntu Mono 13
-! rofi.font: Inconsolata 16
-! rofi.font: Iosevka 13
-! rofi.font: Source Code Pro 11
-rofi.font: Source Code Pro 10.5
-rofi.modi: run,window
-! rofi.width: 640
-rofi.width: 600
-!rofi.location: 2
-!rofi.yoffset: 200
-rofi.monitor: -1
-!rofi.lines: 10
-
-!rofi.theme: /usr/share/rofi/themes//Arc.rasi
-!rofi.theme: /usr/share/rofi/themes//Paper.rasi
-!rofi.theme: /usr/share/rofi/themes//sidebar.rasi
-
-rofi.theme: /usr/share/rofi/themes//gruvbox-light.rasi
-#+end_src
-
-** rofi-pass
-:PROPERTIES:
-:header-args+: :tangle ~/.config/rofi-pass/config
-:END:
+** rofi-pass
+:PROPERTIES:
+:header-args+: :tangle ~/.config/rofi-pass/config
+:END:
#+begin_src conf
# permanently set alternative root dir
@@ -2410,7 +1913,7 @@ clip=primary
# Options for generating new password entries
# default_user is also used for password files that have no user field.
default_user=aminb
-default_user2=aminban
+default_user2=bandali
password_length=30
# Custom Keybindings
@@ -2433,349 +1936,392 @@ switch="Alt+x"
insert_pass="Alt+n"
#+end_src
-** sway
-
-*** main
+** Screen
:PROPERTIES:
-:header-args+: :tangle ~/.config/sway/config
+:header-args+: :tangle ~/.config/screen/screenrc
:END:
-#+begin_src conf
-### 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
-
-exec swayidle \
- timeout 120 '[ -f ~/.nosleep ] || swaymsg "output * dpms off"' \
- resume '[ -f ~/.nosleep ] || swaymsg "output * dpms on"' \
-
-
-### Key bindings
-#
-# Basics:
-#
- # start a terminal
- bindsym $mod+Return exec $term -name floating
- bindsym $mod+Shift+Return exec $term
- for_window [class="URxvt" instance="floating"] floating enable
-
- # kill focused window
- bindsym $mod+Shift+q kill
-
- # start your launcher
- bindsym $mod+d exec $menu
-
- # password manager
- bindsym $mod2+space exec rofi-pass
-
- # 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
-
- bindsym $mod+Shift+apostrophe exec rofi-remmina.py # choose remmina connection
-
- # 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"
+#+begin_src screen
+startup_message off
+caption always "%{= kc}GNU Screen $USER@%H (load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"
+#+end_src
-#
-# Power button
-#
+** Shell
-set $mode_system System (l)ock, (e)xit sway, (s)uspend, (h)ibernate, (r)eboot, (S)hutdown
-mode "$mode_system" {
- bindsym l exec swaylock, mode "default"
- bindsym e exec swaymsg exit, mode "default"
- bindsym s exec systemctl suspend, mode "default"
- bindsym h exec systemctl hibernate, mode "default"
- bindsym r exec systemctl reboot, mode "default"
- bindsym Shift+s exec systemctl poweroff -i, mode "default"
+*** GNU Bash
+:PROPERTIES:
+:header-args+: :tangle ~/.bashrc
+:END:
- # back to normal: Enter, Escape, or q
- bindsym Return mode "default"
- bindsym Escape mode "default"
- bindsym q mode "default"
-}
-# bindsym XF86PowerOff mode "$mode_system"
-bindsym $mod+Shift+e mode "$mode_system"
+#+begin_src bash
+# Bash initialization for interactive non-login shells and
+# for remote shells (info "(bash) Bash Startup Files").
-#
-# Presentation mode
-#
+# Export 'SHELL' to child processes. Programs such as 'screen'
+# honor it and otherwise use /bin/sh.
+export SHELL
-bindsym $mod+$mod2+p exec ([ ! -e ~/.nosleep ] && touch ~/.nosleep || rm ~/.nosleep) && killall -USR1 i3status
+if [[ $- != *i* ]]
+then
+ # We are being invoked from a non-interactive shell. If this
+ # is an SSH session (as in "ssh host command"), source
+ # /etc/profile so we get PATH and other essential variables.
+ [[ -n "$SSH_CLIENT" ]] && source /etc/profile
-#
-# Notifications
-#
+ # Don't do anything else.
+ return
+fi
-bindsym $mod+Shift+n mode notifications
-mode notifications {
- bindsym Return exec makoctl invoke; exec makoctl dismiss; mode default
- bindsym d exec makoctl dismiss; mode default
- bindsym Shift+d exec makoctl dismiss -a; mode default
+if [ -n "$IS_GUIX_SYSTEM" ]; then
+ # Source the system-wide file.
+ source /etc/bashrc
+fi
- bindsym Escape mode default
- bindsym q mode default
+# from https://unix.stackexchange.com/a/55935
+b_prompt() {
+ cwd=$(sed -e "s:$HOME:~:" -e "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD)
+ printf $cwd
}
-#
-# Screenshotting
-#
+if [ $(id -u) == "0" ]; then
+ PS1='`printf "\[\e[1;31m\]\$\[\e[00m\]"` '
+else
+ PS1='\$ '
+fi
+PS1="\u@\h:\w/`[ -n "$GUIX_ENVIRONMENT" ] && printf \" [env]\"`\n$PS1"
+
+# set terminal title
+PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: $(b_prompt)\007"'
+
+# i-beam cursor
+# echo -e "\033[5 q" # blinking
+echo -e "\033[6 q" # non-blinking
+
+# various bash tweaks
+# append to the history file, don't overwrite it
+shopt -s histappend
+shopt -s cmdhist
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=
+HISTFILESIZE=
+# don't put duplicate lines or lines starting with space in the
+# history.
+HISTCONTROL=ignoreboth
+# ignore a few very common commands and don't add them to history
+HISTIGNORE='ls:l:s:g:[bf]g:history'
+HISTTIMEFORMAT='%F %T '
+stty stop ""
-bindsym $mod+Shift+s mode screenshot
-mode screenshot {
- bindsym a exec grim $(xdg-user-dir PICTURES)/shots/$(date +'%Y-%m-%d-%H%M%S.png'); mode default
- bindsym r exec slurp | grim -g - $(xdg-user-dir PICTURES)/shots/$(date +'%Y-%m-%d-%H%M%S.png'); mode default
+# aliases
+alias ls='ls -p --color=auto'
+alias l='ls -lh' # long format and human-readable sizes
+alias ll='l -A' # long format, all files
+alias dir='dir --color=auto'
+alias vdir='vdir --color=auto'
+alias grep='grep --color=auto'
+alias fgrep='fgrep --color=auto'
+alias egrep='egrep --color=auto'
+alias mpv="mpv --ytdl-format mp4"
+alias mv="mv -iv"
+alias cp="cp -iv"
+alias mbsync='mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc'
+alias getmail='getmail --getmaildir "$XDG_CONFIG_HOME"/getmail --rcfile getmailrc'
+alias m="mbsync csclub; mbsync uwaterloo; mbsync shemshak; mbsync gnub"
+alias best="youtube-dl -f best"
+alias e="$EDITOR"
+alias se="SUDO_EDITOR=\"emacsclient\" sudo -e"
- bindsym Escape mode default
- bindsym q mode default
+aur() {
+ cd ~/usr/builds
+ [ -d ${1} ] || git clone https://aur.archlinux.org/${1}.git
+ cd ${1}
}
-#
-# Status Bar:
-#
-# Read `man 5 sway-bar` for more information about this section.
-bar {
- position bottom
- colors {
- statusline #ffffff
- background #212121
- inactive_workspace #21212100 #21212100 #5c5c5c
- }
- status_command i3status | my-i3status.py
+function t {
+ cd $(mktemp -d /tmp/$1.XXXX)
}
-# font pango: benis uushi 9
-# font pango: Ubuntu Mono 11
-# font pango: Inconsolata 11
-font pango: DejaVu Sans Mono 9
-# font pango: Liberation Mono 9
+# separate alias definitions file, if exists
+if [ -f ~/.bash_aliases ]; then
+ . ~/.bash_aliases
+fi
+
+# enable programmable completion features (not needed if already
+# enabled in /etc/bash.bashrc and if /etc/profile sources
+# /etc/bash.bashrc).
+if ! shopt -oq posix; then
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
+ . /usr/share/bash-completion/bash_completion
+ elif [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
+ fi
+fi
+
+# source Guix shell config dirs, for vte.sh and bash completions
+GUIX_PROFILES=("${HOME}/.guix-profile"
+ "${HOME}/.config/guix/current")
+for profile in "${GUIX_PROFILES[@]}"; do
+ for dir in "${profile}/etc/bash_completion.d" "${profile}/etc/profile.d"; do
+ if [ -d "${dir}" ]; then
+ for f in "${dir}"/*; do
+ . $f
+ done
+ fi
+ done
+done
+#+end_src
+
+*** profile
+:PROPERTIES:
+:header-args+: :tangle ~/.profile
+:END:
+
+#+begin_src sh
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+
+# source host-specific profile
+if [ -f "$HOME/.config/profiles/$(hostname)" ]; then
+ . "$HOME/.config/profiles/$(hostname)"
+fi
+
+export EDITOR="emacsclient -nw"
+export VISUAL="emcl"
+
+PATH="$HOME/usr/local/bin:$HOME/.local/bin:$PATH"
+PATH="$HOME/.cabal/bin:$HOME/.cargo/bin:$HOME/.elan/bin:$PATH"
+if [ -z "$IS_GUIX_SYSTEM" ]; then
+ PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH"
+ INFOPATH="$HOME/.config/guix/current/share/info${INFOPATH:+:}$INFOPATH"
+ export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
+fi
+export PATH
+export INFOPATH
+
+export MY_GUIX_MANIFESTS="$HOME/.config/guix/manifest"
+export MY_GUIX_PROFILES="$HOME/.config/guix/profile"
+
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_DATA_HOME="$HOME/.local/share"
+
+if [ -f "$HOME/.config/user-dirs.dirs" ]; then
+ set -a
+ . "$HOME/.config/user-dirs.dirs"
+ set +a
+fi
+
+export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
+export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc
+
+export MAILDIR="$HOME/mail"
+export CVS_RSH="ssh"
+
+if [ -x "$(command -v go)" ]; then
+ export GOPATH="$HOME/src/go"
+ export PATH="$GOPATH/bin:$PATH"
+fi
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+ # include .bashrc if it exists
+ if [ -f "$HOME/.bashrc" ]; then
+ . "$HOME/.bashrc"
+ fi
+fi
-exec xrdb .Xresources
-# exec pgrep -x "systemd-inhibit" || \
-# systemd-inhibit --what=handle-power-key --who=aminb \
-# --why="Handle power button in sway" sleep infinity
-exec mako 2>&1 >/tmp/mako.log
-exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+if [ -z "$IS_GUIX_SYSTEM" ]; then
+ # if guix is installed
+ if [ -x "$(command -v guix)" ]; then
+ SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
+ if [ -d "$SSL_CERT_DIR" -o -h "$SSL_CERT_DIR" ]; then
+ export SSL_CERT_DIR
+ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
+ else
+ printf "it seems you forgot to \`guix install nss-certs\'\n"
+ fi
+ GUIX_PROFILE="$HOME/.guix-profile"
+ . "$GUIX_PROFILE/etc/profile"
+ unset XDG_DATA_DIRS
+ fi
+fi
-include /etc/sway/config.d/*
-include ~/.config/sway/`hostname`
+for p in $MY_GUIX_PROFILES/*; do
+ profile=$p/$(basename "$p")
+ if [ -f "$profile"/etc/profile ]; then
+ GUIX_PROFILE="$profile"
+ . "$GUIX_PROFILE"/etc/profile
+ fi
+ unset profile
+done
-exec systemd-notify --ready || true
+# start an ssh-agent (with guix's openssh)
+if [ -z "$IS_GUIX_SYSTEM" ]; then
+ if ! pgrep -u "$USER" ssh-agent > /dev/null; then
+ ssh-agent > ~/.ssh-agent-thing
+ fi
+ if [[ ! "$SSH_AUTH_SOCK" ]]; then
+ eval "$(<~/.ssh-agent-thing)"
+ fi
+fi
+# footenote: when on a foreign distro and using Xfce, don't forget to
+# disable its auto-start of gpg- and ssh-agent, by issuing
+# xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false
+# xfconf-query -c xfce4-session -p /startup/gpg-agent/enabled -n -t bool -s false
+# see https://docs.xfce.org/xfce/xfce4-session/advanced#ssh_and_gpg_agents
+# also, MATE does something similar with gnome-keyring-daemon:
+# http://william.shallum.net/random-notes/disabling-gnome-keyring-daemon-ssh-agent-on-mate-desktop
#+end_src
-*** langa
+*** per-host profiles
+
+Host-specific profiles, sourced from =~/.profile=. Each
+=~/.config/profiles/HOST= file will be sourced on the machine with
+=hostname= of =HOST=.
+
+**** chaman
:PROPERTIES:
-:header-args+: :tangle ~/.config/sway/langa
+:header-args+: :tangle ~/.config/profiles/chaman
:END:
-#+begin_src conf
-input "2:7:SynPS/2_Synaptics_TouchPad" {
- events disabled
- dwt enabled
- tap enabled
- natural_scroll enabled
- click_method clickfinger
-}
+#+begin_src sh
+export IS_GUIX_SYSTEM=true
-input "1:1:AT_Translated_Set_2_keyboard" {
- repeat_delay 200
- repeat_rate 45
- xkb_layout us_ab,ir
- xkb_options ctrl:nocaps,altwin:swap_alt_win,grp:shifts_toggle
-}
+if [ -x "$(command -v xinput)" ]; then
+ xinput --set-prop "TPPS/2 IBM TrackPoint" 'libinput Accel Speed' -0.4
+fi
+
+setxkbmap \
+ -layout us,ir \
+ -option ctrl:nocaps \
+ -option grp:shifts_toggle
+
+xmodmap -e "keysym Menu = Super_R"
+
+xsetroot -cursor_name left_ptr
+xset r rate 200 45
+xset b off
#+end_src
-*** shemshak
+**** darrud
:PROPERTIES:
-:header-args+: :tangle ~/.config/sway/shemshak
+:header-args+: :tangle ~/.config/profiles/darrud
:END:
-#+begin_src conf
-input "1739:31251:DLL07BE:01_06CB:7A13_Touchpad" {
- dwt enabled
- tap enabled
- natural_scroll enabled
- middle_emulation enabled
- click_method clickfinger
-}
+#+begin_src sh
+export INFOPATH="$HOME/usr/local/share/info${INFOPATH:+:}$INFOPATH"
+#+end_src
-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
-}
+**** langa
+:PROPERTIES:
+:header-args+: :tangle ~/.config/profiles/langa
+:END:
+
+#+begin_src sh
+export XDG_DATA_DIRS="/usr/share/mate:/usr/local/share/:/usr/share/"
#+end_src
-** swaylock
+
+** redshift
:PROPERTIES:
-:header-args+: :tangle ~/.config/swaylock/config
+:header-args+: :tangle ~/.config/redshift.conf :comments none
:END:
#+begin_src conf
-image=/home/amin/usr/pics/wp/wp2445784-blurred-wallpapers.jpg
-scaling=fill
+; Global settings for redshift
+[redshift]
+; Set the day and night screen temperatures (Neutral is 6500K)
+;temp-day=5700
+;temp-night=3500
+
+;temp-day=6500
+temp-day=6200
+;temp-night=4800
+;temp-night=5000
+;temp-night=4500
+temp-night=4000
+
+; Enable/Disable a smooth transition between day and night
+; 0 will cause a direct change from day to night screen temperature.
+; 1 will gradually increase or decrease the screen temperature.
+transition=1
+
+; Set the screen brightness. Default is 1.0.
+;brightness=0.9
+; It is also possible to use different settings for day and night
+; since version 1.8.
+;brightness-day=0.7
+;brightness-night=0.4
+; Set the screen gamma (for all colors, or each color channel
+; individually)
+;gamma=0.8
+;gamma=1.0
+;gamma=0.8:0.7:0.8
+; This can also be set individually for day and night since
+; version 1.10.
+;gamma-day=0.8:0.7:0.8
+;gamma-night=0.6
+
+; Set the location-provider: 'geoclue2' or 'manual'
+; type 'redshift -l list' to see possible values.
+; The location provider settings are in a different section.
+;location-provider=manual
+location-provider=geoclue2
+
+; Set the adjustment-method: 'randr', 'vidmode'
+; type 'redshift -m list' to see all possible values.
+; 'randr' is the preferred method, 'vidmode' is an older API.
+; but works in some cases when 'randr' does not.
+; The adjustment method settings are in a different section.
+adjustment-method=randr
+
+; Configuration of the location-provider:
+; type 'redshift -l PROVIDER:help' to see the settings.
+; ex: 'redshift -l manual:help'
+; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
+; are negative numbers.
+;[manual]
+;lat=48.1
+;lon=11.6
+
+; Configuration of the adjustment-method
+; type 'redshift -m METHOD:help' to see the settings.
+; ex: 'redshift -m randr:help'
+; In this example, randr is configured to adjust screen 1.
+; Note that the numbering starts from 0, so this is actually the
+; second screen. If this option is not specified, Redshift will try
+; to adjust _all_ screens.
+;[randr]
+;screen=1
+#+end_src
+
+** signature
+:PROPERTIES:
+:header-args+: :tangle ~/.signature
+:END:
+
+My email signature.
+
+#+begin_src
+Amin Bandali
+Free Software activist | GNU maintainer & webmaster
+GPG: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103
+https://bandali.eu.org
+#+end_src
+
+** systemd
+
+Keep boot messages on tty1 (see [[https://wiki.archlinux.org/index.php/getty#Have_boot_messages_stay_on_tty1][here]])
+
+#+begin_src conf :tangle /sudo::/etc/systemd/system/getty@tty1.service.d/noclear.conf
+[Service]
+TTYVTDisallocate=no
#+end_src
** TLP
@@ -2785,33 +2331,43 @@ scaling=fill
#+begin_src conf :tangle (when (and (eq system-type 'gnu/linux) (string= (system-name) "langa")) "/sudo::/etc/default/tlp")
# ------------------------------------------------------------------------------
# tlp - Parameters for power saving
-# See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html
+# See full explanation: https://linrunner.de/en/tlp/docs/tlp-configuration.html
-# Hint: some features are disabled by default, remove the leading # to enable
-# them.
+# Notes:
+# - Some parameters are disabled, remove the leading '#' to enable # them;
+# shown values are suggestions not defaults
+# - Default *: intrinsic default that is effective when the parameter is missing
+# or disabled by a leading '#'; use PARAM="" to disable intrinsic defaults for
+# parameters with text string values
+# - Default : do nothing or use kernel/hardware defaults
# Set to 0 to disable, 1 to enable TLP.
+# Default: 0
TLP_ENABLE=1
# Operation mode when no power supply can be detected: AC, BAT.
# Concerns some desktop and embedded hardware only.
+# Default:
TLP_DEFAULT_MODE=AC
# Operation mode select: 0=depend on power source, 1=always use TLP_DEFAULT_MODE
# Hint: use in conjunction with TLP_DEFAULT_MODE=BAT for BAT settings on AC.
+# Default: 0
TLP_PERSISTENT_DEFAULT=0
# Seconds laptop mode has to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
+# Default: 0 (AC), 2 (BAT)
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2
# Dirty page values (timeouts in secs).
+# Default: 15 (AC + BAT)
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
-# Hint: CPU parameters below are disabled by default, remove the leading #
-# to enable them, otherwise kernel default values are used.
+# Note: CPU parameters below are disabled by default, remove the leading #
+# to enable them, otherwise kernel defaults will be used.
# Select a CPU frequency scaling governor.
# Intel Core i processor with intel_pstate driver:
@@ -2819,19 +2375,21 @@ MAX_LOST_WORK_SECS_ON_BAT=60
# Older hardware with acpi-cpufreq driver:
# ondemand(*), powersave, performance, conservative, schedutil.
# (*) is recommended.
-# Hint: use tlp-stat -p to show the active driver and available governors.
+# Use tlp-stat -p to show the active driver and available governors.
# Important:
# powersave for intel_pstate and ondemand for acpi-cpufreq are power
# efficient for *almost all* workloads and therefore kernel and most
# distributions have chosen them as defaults. If you still want to change,
# you should know what you're doing! You *must* disable your distribution's
# governor settings or conflicts will occur.
+# Default:
#CPU_SCALING_GOVERNOR_ON_AC=powersave
#CPU_SCALING_GOVERNOR_ON_BAT=powersave
# Set the min/max frequency available for the scaling governor.
-# Possible values strongly depend on your CPU. For available frequencies see
+# Possible values depend on your CPU. For available frequencies see
# the output of tlp-stat -p.
+# Default:
#CPU_SCALING_MIN_FREQ_ON_AC=0
#CPU_SCALING_MAX_FREQ_ON_AC=0
#CPU_SCALING_MIN_FREQ_ON_BAT=0
@@ -2841,6 +2399,7 @@ MAX_LOST_WORK_SECS_ON_BAT=60
# performance, balance_performance, default, balance_power, power
# Values are given in order of increasing power saving.
# Note: Intel Skylake or newer CPU and Kernel >= 4.10 required.
+# Default:
CPU_HWP_ON_AC=balance_performance
CPU_HWP_ON_BAT=balance_power
@@ -2848,6 +2407,7 @@ CPU_HWP_ON_BAT=balance_power
# Limit the max/min P-state to control the power dissipation of the CPU.
# Values are stated as a percentage of the available performance.
# Requires an Intel Core i processor with intel_pstate driver.
+# Default:
#CPU_MIN_PERF_ON_AC=0
#CPU_MAX_PERF_ON_AC=100
#CPU_MIN_PERF_ON_BAT=0
@@ -2858,39 +2418,47 @@ CPU_HWP_ON_BAT=balance_power
# Important:
# - This may conflict with your distribution's governor settings
# - A value of 1 does *not* activate boosting, it just allows it
+# Default:
#CPU_BOOST_ON_AC=1
#CPU_BOOST_ON_BAT=0
# Minimize number of used CPU cores/hyper-threads under light load conditions:
# 0=disable, 1=enable.
+# Default:
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1
# Kernel NMI Watchdog:
# 0=disable (default, saves power), 1=enable (for kernel debugging only).
+# Default:
NMI_WATCHDOG=0
# Change CPU voltages aka "undervolting" - Kernel with PHC patch required.
# Frequency voltage pairs are written to:
# /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
# CAUTION: only use this, if you thoroughly understand what you are doing!
+# Default: .
#PHC_CONTROLS="F:V F:V F:V F:V"
# Set CPU performance versus energy savings policy:
# performance, balance-performance, default, balance-power, power.
# Values are given in order of increasing power saving.
# Requires kernel module msr and x86_energy_perf_policy from linux-tools.
+# Default:
ENERGY_PERF_POLICY_ON_AC=performance
ENERGY_PERF_POLICY_ON_BAT=balance-power
-# Disk devices; separate multiple devices with spaces (default: sda).
+# Disk devices; separate multiple devices with spaces.
# Devices can be specified by disk ID also (lookup with: tlp diskid).
+# Note: DISK parameters below are effective only when this option is configured.
+# Default: "nvme0n1 sda"
DISK_DEVICES="sda sdb"
# Disk advanced power management level: 1..254, 255 (max saving, min, off).
# Levels 1..127 may spin down the disk; 255 allowable on most drives.
# Separate values for multiple disks with spaces. Use the special value 'keep'
# to keep the hardware default for the particular disk.
+# Default:
DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="128 128"
@@ -2901,179 +2469,249 @@ DISK_APM_LEVEL_ON_BAT="128 128"
# See 'man hdparm' for details.
# Separate values for multiple disks with spaces. Use the special value 'keep'
# to keep the hardware default for the particular disk.
+# Default:
#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"
-# Select IO scheduler for the disk devices: cfq, deadline, noop (Default: cfq).
+# Select I/O scheduler for the disk devices.
+# Multi queue (blk-mq) schedulers:
+# mq-deadline(*), none, kyber, bfq
+# Single queue schedulers:
+# deadline(*), cfq, bfq, noop
+# (*) recommended.
# Separate values for multiple disks with spaces. Use the special value 'keep'
# to keep the kernel default scheduler for the particular disk.
-#DISK_IOSCHED="cfq cfq"
+# Notes:
+# - Multi queue (blk-mq) may need kernel boot option 'scsi_mod.use_blk_mq=1'
+# and 'modprobe mq-deadline-iosched|kyber|bfq' on kernels < 5.0
+# - Single queue schedulers are legacy now and were removed together with
+# the old block layer in kernel 5.0
+# Default: keep
+#DISK_IOSCHED="mq-deadline mq-deadline"
# AHCI link power management (ALPM) for disk devices:
# min_power, med_power_with_dipm(*), medium_power, max_performance.
# (*) Kernel >= 4.15 required, then recommended.
# Multiple values separated with spaces are tried sequentially until success.
+# Default:
SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"
# Exclude host devices from AHCI link power management.
# Separate multiple hosts with spaces.
+# Default:
#SATA_LINKPWR_BLACKLIST="host1"
# Runtime Power Management for AHCI host and disks devices:
# on=disable, auto=enable.
-# EXPERIMENTAL ** WARNING: auto will most likely cause system lockups/data loss.
+# EXPERIMENTAL ** WARNING: auto may cause system lockups/data loss.
+# Default:
#AHCI_RUNTIME_PM_ON_AC=on
#AHCI_RUNTIME_PM_ON_BAT=on
# Seconds of inactivity before disk is suspended.
+# Note: effective only when AHCI_RUNTIME_PM_ON_AC/BAT is activated.
+# Default: 15
AHCI_RUNTIME_PM_TIMEOUT=15
# PCI Express Active State Power Management (PCIe ASPM):
-# default, performance, powersave.
-PCIE_ASPM_ON_AC=performance
-PCIE_ASPM_ON_BAT=powersave
+# default(*), performance, powersave.
+# (*) keeps BIOS ASPM defaults (recommended)
+# Default:
+#PCIE_ASPM_ON_AC=default
+#PCIE_ASPM_ON_BAT=default
+
+# Set the min/max/turbo frequency for the Intel GPU.
+# Possible values depend on your hardware. For available frequencies see
+# the output of tlp-stat -g.
+# Default:
+#INTEL_GPU_MIN_FREQ_ON_AC=0
+#INTEL_GPU_MIN_FREQ_ON_BAT=0
+#INTEL_GPU_MAX_FREQ_ON_AC=0
+#INTEL_GPU_MAX_FREQ_ON_BAT=0
+#INTEL_GPU_BOOST_FREQ_ON_AC=0
+#INTEL_GPU_BOOST_FREQ_ON_BAT=0
# Radeon graphics clock speed (profile method): low, mid, high, auto, default;
-# auto = mid on BAT, high on AC; default = use hardware defaults.
-RADEON_POWER_PROFILE_ON_AC=high
-RADEON_POWER_PROFILE_ON_BAT=low
+# auto = mid on BAT, high on AC.
+# Default: default
+RADEON_POWER_PROFILE_ON_AC=default
+RADEON_POWER_PROFILE_ON_BAT=default
# Radeon dynamic power management method (DPM): battery, performance.
+# Default:
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=battery
# Radeon DPM performance level: auto, low, high; auto is recommended.
+# Note: effective only when RADEON_DPM_STATE_ON_AC/BAT is activated.
+# Default: auto
RADEON_DPM_PERF_LEVEL_ON_AC=auto
RADEON_DPM_PERF_LEVEL_ON_BAT=auto
# WiFi power saving mode: on=enable, off=disable; not supported by all adapters.
+# Default:
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=on
# Disable wake on LAN: Y/N.
+# Default: N
WOL_DISABLE=Y
# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power saving (recommended: 1).
+# Default:
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=0
# Disable controller too (HDA only): Y/N.
+# Note: effective only when SOUND_POWER_SAVE_ON_AC/BAT is activated.
+# Default: Y
SOUND_POWER_SAVE_CONTROLLER=N
# Power off optical drive in UltraBay/MediaBay: 0=disable, 1=enable.
# Drive can be powered on again by releasing (and reinserting) the eject lever
# or by pressing the disc eject button on newer models.
# Note: an UltraBay/MediaBay hard disk is never powered off.
+# Default: 0
BAY_POWEROFF_ON_AC=0
BAY_POWEROFF_ON_BAT=0
-# Optical drive device to power off (default sr0).
+# Optical drive device to power off
+# Default: sr0
BAY_DEVICE="sr0"
# Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable.
+# Default:
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
# Exclude PCI(e) device adresses the following list from Runtime PM
# (separate with spaces). Use lspci to get the adresses (1st column).
+# Default:
#RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6"
# Exclude PCI(e) devices assigned to the listed drivers from Runtime PM.
# Default when unconfigured is "amdgpu nouveau nvidia radeon" which
# prevents accidential power-on of dGPU in hybrid graphics setups.
-# Use "" to disable the feature completely.
# Separate multiple drivers with spaces.
-#RUNTIME_PM_DRIVER_BLACKLIST="amdgpu nouveau nvidia radeon"
+# Default: "amdgpu mei_me nouveau nvidia pcieport radeon", use "" to disable
+# completely.
+#RUNTIME_PM_DRIVER_BLACKLIST="amdgpu mei_me nouveau nvidia pcieport radeon"
# Set to 0 to disable, 1 to enable USB autosuspend feature.
+# Default: 0
USB_AUTOSUSPEND=1
# Exclude listed devices from USB autosuspend (separate with spaces).
# Use lsusb to get the ids.
# Note: input devices (usbhid) are excluded automatically
+# Default:
#USB_BLACKLIST="1111:2222 3333:4444"
# Bluetooth devices are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude.
+# Default: 0
USB_BLACKLIST_BTUSB=0
# Phone devices are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude (enable charging).
+# Default: 0
USB_BLACKLIST_PHONE=0
# Printers are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude.
+# Default: 1
USB_BLACKLIST_PRINTER=1
# WWAN devices are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude.
-USB_BLACKLIST_WWAN=1
+# Default: 0
+USB_BLACKLIST_WWAN=0
# Include listed devices into USB autosuspend even if already excluded
-# by the blacklists above (separate with spaces).
-# Use lsusb to get the ids.
+# by the blacklists above (separate with spaces). Use lsusb to get the ids.
+# Default:
#USB_WHITELIST="1111:2222 3333:4444"
# Set to 1 to disable autosuspend before shutdown, 0 to do nothing
# (workaround for USB devices that cause shutdown problems).
+# Default: 0
#USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1
# Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown
# on system startup: 0=disable, 1=enable.
-# Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
-# are ignored when this is enabled!
+# Note: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
+# are ignored when this is enabled.
+# Default: 0
#RESTORE_DEVICE_STATE_ON_STARTUP=0
-RESTORE_DEVICE_STATE_ON_STARTUP=0
+RESTORE_DEVICE_STATE_ON_STARTUP=1
# Radio devices to disable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
+# Default:
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
-DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
# Radio devices to enable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
+# Default:
#DEVICES_TO_ENABLE_ON_STARTUP="wifi"
# Radio devices to disable on shutdown: bluetooth, wifi, wwan.
# (workaround for devices that are blocking shutdown).
+# Default:
#DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan"
# Radio devices to enable on shutdown: bluetooth, wifi, wwan.
# (to prevent other operating systems from missing radios).
+# Default:
#DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan"
# Radio devices to enable on AC: bluetooth, wifi, wwan.
+# Default:
#DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan"
# Radio devices to disable on battery: bluetooth, wifi, wwan.
+# Default:
#DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan"
+DEVICES_TO_DISABLE_ON_BAT="bluetooth"
# Radio devices to disable on battery when not in use (not connected):
# bluetooth, wifi, wwan.
+# Default:
#DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan"
# Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module
# required). Charging starts when the remaining capacity falls below the
# START_CHARGE_THRESH value and stops when exceeding the STOP_CHARGE_THRESH value.
# Main / Internal battery (values in %)
+# Default:
#START_CHARGE_THRESH_BAT0=75
#STOP_CHARGE_THRESH_BAT0=80
# Ultrabay / Slice / Replaceable battery (values in %)
+# Default:
#START_CHARGE_THRESH_BAT1=75
#STOP_CHARGE_THRESH_BAT1=80
# Restore charge thresholds when AC is unplugged: 0=disable, 1=enable.
+# Default: 0
#RESTORE_THRESHOLDS_ON_BAT=1
+# Battery feature drivers: 0=disable, 1=enable
+# Default: 1 (all)
+NATACPI_ENABLE=1
+TPACPI_ENABLE=1
+TPSMAPI_ENABLE=1
+
# ------------------------------------------------------------------------------
# tlp-rdw - Parameters for the radio device wizard
# Possible devices: bluetooth, wifi, wwan.
-# Hints:
+# Notes:
# - Parameters are disabled by default, remove the leading # to enable them
# - Separate multiple radio devices with spaces
+# Default: (for all parameters below)
+
# Radio devices to disable on connect.
#DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
#DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
@@ -3408,212 +3046,24 @@ RESTORE_DEVICE_STATE_ON_STARTUP=1
** X
-*** xprofile
+*** xinit
:PROPERTIES:
-:header-args+: :tangle ~/.xprofile
+:header-args+: :tangle ~/.xinitrc
:END:
-=~/.xprofile= is similar in style to =~/.xinitrc=, but on the
-contrary, it's automatically sourced by LightDM, my display manager of
-choice.
-
-#+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
-
-setxkbmap -option ctrl:nocaps # turn capslock into control
-setxkbmap -option altwin:swap_alt_win # swap alt and super
-
-if [ $(hostname) = "plasma" ]
-then
- setxkbmap -option ctrl:rctrl_ralt # turn right control into right alt
-fi
-
-if [ $(hostname) = "enigma" ]
-then
- xmodmap -e "keycode 135 = Alt_R" # remap menu key to alt
-fi
-
-light -Scrs "intel_backlight" 2
-
-source $HOME/.zprofile
-
-export _JAVA_AWT_WM_NONREPARENTING=1
-export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'
-
-if [ $(hostname) = "plasma" ]
-then
- unlock-def-gk.py &
-fi
-
-bspwm &
+#+begin_src sh
+[ -f ~/.Xresources ] && xrdb -merge ~/.Xresources
#+end_src
*** X resources
-**** Xresources
-:PROPERTIES:
-:header-args+: :tangle (when (eq system-type 'gnu/linux) "~/.Xresources")
-:END:
-
-#+begin_src conf-xdefaults
+#+begin_src conf-xdefaults :tangle (when (eq system-type 'gnu/linux) "~/.Xresources")
#include ".Xresources.d/fonts"
-! #include ".Xresources.d/colors"
#include ".Xresources.d/emacs"
#include ".Xresources.d/rxvt-unicode"
#+end_src
-**** Xresources.d
-
-***** fonts
-:PROPERTIES:
-:header-args+: :tangle (when (eq system-type 'gnu/linux) "~/.Xresources.d/fonts")
-:END:
-
-#+begin_src conf-xdefaults
-Xft.lcdfilter: lcddefault
-Xft.antialias: true
-Xft.autohint: 0
-Xft.hinting: true
-Xft.hintstyle: hintslight
-! Xft.hintstyle: hintfull
-Xft.rgba: rgb
-Xft.dpi: 96
-#+end_src
-
-***** colors
-:PROPERTIES:
-:header-args+: :tangle (when (eq system-type 'gnu/linux) "~/.Xresources.d/colors")
-:END:
-
-#+begin_src conf-xdefaults :tangle no
-#include "gruvbox-light.xresources"
-! #include "gruvbox-dark.xresources"
-#include "gruvbox-urxvt256.xresources"
-#+end_src
-
-#+begin_src conf-xdefaults :tangle no
-! -----------------------------------------------------------------------------
-! File: gruvbox-light.xresources
-! Description: Retro groove colorscheme generalized
-! Author: morhetz
-! Source: https://github.com/morhetz/gruvbox-generalized
-! Last Modified: 6 Sep 2014
-! -----------------------------------------------------------------------------
-
-! hard contrast: *background: #f9f5d7
-*background: #fbf1c7
-! soft contrast: *background: #f2e5bc
-*foreground: #3c3836
-! Black + DarkGrey
-*color0: #fdf4c1
-*color8: #928374
-! DarkRed + Red
-*color1: #cc241d
-*color9: #9d0006
-! DarkGreen + Green
-*color2: #98971a
-*color10: #79740e
-! DarkYellow + Yellow
-*color3: #d79921
-*color11: #b57614
-! DarkBlue + Blue
-*color4: #458588
-*color12: #076678
-! DarkMagenta + Magenta
-*color5: #b16286
-*color13: #8f3f71
-! DarkCyan + Cyan
-*color6: #689d6a
-*color14: #427b58
-! LightGrey + White
-*color7: #7c6f64
-*color15: #3c3836
-#+end_src
-
-#+begin_src conf-xdefaults :tangle no
-! -----------------------------------------------------------------------------
-! File: gruvbox-dark.xresources
-! Description: Retro groove colorscheme generalized
-! Author: morhetz
-! Source: https://github.com/morhetz/gruvbox-generalized
-! Last Modified: 6 Sep 2014
-! -----------------------------------------------------------------------------
-
-! hard contrast: *background: #1d2021
-*background: #282828
-! soft contrast: *background: #32302f
-*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
-#+end_src
-
-#+begin_src conf-xdefaults :tangle no
-! -----------------------------------------------------------------------------
-! File: gruvbox-urxvt256.xresources
-! Description: Retro groove colorscheme generalized
-! Author: morhetz
-! Source: https://github.com/morhetz/gruvbox-generalized
-! Last Modified: 13 Dec 2013
-! -----------------------------------------------------------------------------
-
-URxvt.color24: #076678
-URxvt.color66: #427b58
-URxvt.color88: #9d0006
-URxvt.color96: #8f3f71
-URxvt.color100: #79740e
-URxvt.color108: #8ec07c
-URxvt.color109: #83a598
-URxvt.color130: #af3a03
-URxvt.color136: #b57614
-URxvt.color142: #b8bb26
-URxvt.color167: #fb4934
-URxvt.color175: #d3869b
-URxvt.color208: #fe8019
-URxvt.color214: #fabd2f
-URxvt.color223: #ebdbb2
-URxvt.color228: #f2e5bc
-URxvt.color229: #fbf1c7
-URxvt.color230: #f9f5d7
-URxvt.color234: #1d2021
-URxvt.color235: #282828
-URxvt.color236: #32302f
-URxvt.color237: #3c3836
-URxvt.color239: #504945
-URxvt.color241: #665c54
-URxvt.color243: #7c6f64
-URxvt.color244: #928374
-URxvt.color245: #928374
-URxvt.color246: #a89984
-URxvt.color248: #bdae93
-URxvt.color250: #d5c4a1
-#+end_src
-
-***** emacs
+**** emacs
:PROPERTIES:
:header-args+: :tangle (when (eq system-type 'gnu/linux) "~/.Xresources.d/emacs")
:END:
@@ -3636,12 +3086,28 @@ Emacs.FontBackend: xft,x
! Emacs.font: Inconsolata:size=16
! Emacs.font: Inconsolata LGC:size=14
! Emacs.font: Source Code Pro Medium-10.5
-Emacs.font: Source Code Pro:size=14
+Emacs.font: Source Code Pro Medium:size=14
! Emacs.font: Ubuntu Mono:size=16
! Emacs.font: Iosevka:size=16
#+end_src
-***** rxvt-unicode
+**** fonts
+:PROPERTIES:
+:header-args+: :tangle (when (eq system-type 'gnu/linux) "~/.Xresources.d/fonts")
+:END:
+
+#+begin_src conf-xdefaults
+Xft.lcdfilter: lcddefault
+Xft.antialias: true
+Xft.autohint: 0
+Xft.hinting: true
+Xft.hintstyle: hintslight
+! Xft.hintstyle: hintfull
+Xft.rgba: rgb
+Xft.dpi: 96
+#+end_src
+
+**** rxvt-unicode
:PROPERTIES:
:header-args+: :tangle (when (eq system-type 'gnu/linux) "~/.Xresources.d/rxvt-unicode")
:END:
@@ -3649,15 +3115,16 @@ Emacs.font: Source Code Pro:size=14
#+begin_src conf-xdefaults
! Font
URxvt.font: xft:source code pro:pixelsize=14:antialias=true:hinting=true, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true
-URxvt.boldFont: xft:source code pro semibold:pixelsize=14:antialias=true:hinting=true:bold, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true:bold
-URxvt.italicFont: xft:source code pro italic:pixelsize=14:antialias=true:hinting=true:italic, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true:italic
-URxvt.bolditalicFont: xft:source code pro semibold italic:pixelsize=14:antialias=true:hinting=true:bold:italic, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true:bolditalic
+URxvt.boldFont: xft:source code pro:semibold:pixelsize=14:antialias=true:hinting=true:bold, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true:bold
+URxvt.italicFont: xft:source code pro:italic:pixelsize=14:antialias=true:hinting=true:italic, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true:italic
+URxvt.bolditalicFont: xft:source code pro:semibold:italic:pixelsize=14:antialias=true:hinting=true:bold:italic, xft:dejavu sans mono:pixelsize=15:antialias=true:hinting=true:bolditalic
URxvt.xftAntialias: true
-URxvt.letterSpace: 0
+URxvt.letterSpace: -1
-URxvt.depth: 0
-URxvt.loginShell: true
+!URxvt.depth: 0
+!URxvt.loginShell: true
+!URxvt*buffered: false
URxvt.saveLines: 100000
URxvt.internalBorder: 3
URxvt.lineSpace: 0
@@ -3675,13 +3142,17 @@ URxvt.url-select.underline: true
URxvt.keysym.M-u: perl:url-select:select_next
URxvt.keysym.M-Escape: perl:keyboard-select:activate
URxvt.keysym.M-s: perl:keyboard-select:search
-URxvt.url-launcher: /usr/bin/firefox
+URxvt.url-launcher: /usr/bin/abrowser
URxvt.matcher.button: 1
-URxvt.iso14755: false
-URxvt.iso14755_53: false
-URxvt.keysym.M-c: perl:clipboard:copy
-URxvt.keysym.M-v: perl:clipboard:paste
+! URxvt.iso14755: false
+! URxvt.iso14755_53: false
+! URxvt.keysym.M-c: perl:clipboard:copy
+! URxvt.keysym.M-v: perl:clipboard:paste
+URxvt.keysym.M-c: eval:selection_to_clipboard
+URxvt.keysym.M-v: eval:paste_clipboard
URxvt.keysym.C-A-V: perl:clipboard:paste_escaped
+! URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
+! URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.C-Up: font-size:increase
URxvt.keysym.C-Down: font-size:decrease
URxvt.keysym.C-S-Up: font-size:incglobal
@@ -3689,7 +3160,7 @@ URxvt.keysym.C-S-Down: font-size:decglobal
URxvt.keysym.C-equal: font-size:reset
!URxvt.keysym.C-question: font-size:show
-URxvt.iconFile: /usr/share/icons/Paper/48x48/apps/utilities-terminal.png
+!URxvt.iconFile: /usr/share/icons/elementary-xfce/apps/48/terminal.png
!urxvt*foreground: white
!urxvt*background: black
@@ -3739,6 +3210,64 @@ URxvt.iconFile: /usr/share/icons/Paper/48x48/apps/utilities-terminal
!*color7: #babdb9
!*color15: #EEEEEC
+
+! ! Solarized
+! ! Base16 Solarized Light
+! ! Scheme: Ethan Schoonover (http://ethanschoonover.com/solarized)
+
+! #define base00 #fdf6e3
+! #define base01 #eee8d5
+! #define base02 #93a1a1
+! #define base03 #839496
+! #define base04 #657b83
+! #define base05 #586e75
+! #define base06 #073642
+! #define base07 #002b36
+! #define base08 #dc322f
+! #define base09 #cb4b16
+! #define base0A #b58900
+! #define base0B #859900
+! #define base0C #2aa198
+! #define base0D #268bd2
+! #define base0E #6c71c4
+! #define base0F #d33682
+
+! *foreground: base05
+! #ifdef background_opacity
+! *background: [background_opacity]base00
+! #else
+! *background: base00
+! #endif
+! *cursorColor: base05
+
+! *color0: base00
+! *color1: base08
+! *color2: base0B
+! *color3: base0A
+! *color4: base0D
+! *color5: base0E
+! *color6: base0C
+! *color7: base05
+
+! *color8: base03
+! *color9: base08
+! *color10: base0B
+! *color11: base0A
+! *color12: base0D
+! *color13: base0E
+! *color14: base0C
+! *color15: base07
+
+! ! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt),
+! ! use 'shell' template to set these if necessary
+! *color16: base09
+! *color17: base0F
+! *color18: base01
+! *color19: base02
+! *color20: base04
+! *color21: base06
+
+
! Tango colour theme for rxvt-unicode
URxvt.background: #FFFFFF
URxvt.foreground: #000000
@@ -3771,24 +3300,42 @@ URxvt.color13: #AD7FA8
!URxvt.color6: #06989A
!URxvt.color14: #34E2E2
! orange (replaces cyan)
-,*color6: #ce5c00
-,*color14: #fcaf3e
+,,*color6: #ce5c00
+,,*color14: #fcaf3e
! White
URxvt.color7: #D3D7CF
URxvt.color15: #EEEEEC
#+end_src
-*** xkb us_ab keyboard layout
+*** ~/.xsession
+:PROPERTIES:
+:header-args+: :tangle ~/.xsession :tangle-mode (identity #o755)
+:END:
+
+For custom session on Debian. See https://wiki.debian.org/Xsession.
-#+begin_src conf :tangle "/sudo::/usr/share/X11/xkb/symbols/us_ab" :comments none
-default partial alphanumeric_keys
-xkb_symbols "us_ab" {
- include "us(basic)"
- name[Group1]= "English (US)(aminb)";
+#+begin_src sh
+if [ -f "$HOME/.xinitrc" ]; then
+ . "$HOME/.xinitrc"
+fi
- key