diff options
| author | Thomas Schneider <qsx@chaotikum.eu> | 2022-02-18 19:13:58 +0100 |
|---|---|---|
| committer | Thomas Schneider <qsx@chaotikum.eu> | 2022-02-18 19:13:58 +0100 |
| commit | 63114f91e90c1601b9ed8adc1344079fe0018aac (patch) | |
| tree | 784e20b777225bbc9f238ee882f5a14d12d96a32 | |
| parent | b817515621178f72be4e5c5017bd65b66e7aaa4d (diff) | |
| parent | 91683bb596e830aa61acc70b00271a786279cfd8 (diff) | |
Merge branch 'main' into neptun
| -rw-r--r-- | dot.config-polybar-config | 150 | ||||
| -rw-r--r-- | dot.config-rofi-config.rasi | 1 | ||||
| -rw-r--r-- | dot.config-sway-config | 192 | ||||
| -rw-r--r-- | dot.config-swaylock-config | 4 | ||||
| -rw-r--r-- | dot.config-waybar-config | 168 | ||||
| -rw-r--r-- | dot.config-waybar-style.css | 231 | ||||
| -rw-r--r-- | dot.emacs.d/.gitignore | 1 | ||||
| -rw-r--r-- | dot.emacs.d/init.el | 65 | ||||
| -rw-r--r-- | dot.gitconfig | 2 | ||||
| -rwxr-xr-x | dot.local-bin-i3lock--wrapper | 6 | ||||
| -rwxr-xr-x | dot.local-bin-nm--tagger | 2 | ||||
| -rwxr-xr-x | dot.local-bin-sm | 2 | ||||
| -rw-r--r-- | dot.signature--asta | 2 | ||||
| -rw-r--r-- | dot.zshenv | 8 |
14 files changed, 723 insertions, 111 deletions
diff --git a/dot.config-polybar-config b/dot.config-polybar-config index 1f06286..a554f65 100644 --- a/dot.config-polybar-config +++ b/dot.config-polybar-config @@ -3,8 +3,7 @@ background = #222 background-alt = #444 foreground = #dfdfdf -#foreground-alt = #555 -foreground-alt = #00ff00 +green = #00ff00 primary = #ffb52a secondary = #e60053 alert = #bd2c40 @@ -35,12 +34,12 @@ module-margin-left = 0 module-margin-right = 1 font-0 = "Source Code Pro Medium:size=11;1" -font-1 = "Wuncon Siji:size=8;1" -font-2 = "Noto Emoji:size=8;0" +font-1 = "Font Awesome 5 Free:size=11;2" +font-2 = "Font Awesome 5 Free Solid:size=11;2" modules-left = i3 modules-center = mpd -modules-right = pulseaudio xkeyboard memory cpu eth temperature date +modules-right = pulseaudio xkeyboard filesystem memory cpu loadavg eth temperature date tray-position = right tray-padding = 0 @@ -54,19 +53,26 @@ scroll-down = i3wm-wsprev cursor-click = pointer cursor-scroll = ns-resize +[module/loadavg] +type = custom/script +exec = cut -d' ' -f-3 /proc/loadavg + +format-prefix = " " +format-underline = #ffb52a + [module/xkeyboard] type = internal/xkeyboard blacklist-0 = num lock -format-prefix = " " -format-prefix-foreground = ${colors.foreground-alt} +format = <label-layout><label-indicator> + +format-prefix = " " format-prefix-underline = ${colors.secondary} label-layout = %name% label-layout-underline = ${colors.secondary} -label-indicator-background = ${colors.secondary} -label-indicator-underline = ${colors.secondary} +label-indicator-background = ${colors.alert} [module/filesystem] type = internal/fs @@ -74,9 +80,9 @@ interval = 25 mount-0 = / -label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% -label-unmounted = %mountpoint% not mounted -label-unmounted-foreground = ${colors.foreground-alt} +label-mounted = %free% +format-mounted-underline = #0a81f5 +format-mounted-prefix = " " [module/i3] type = internal/i3 @@ -112,38 +118,23 @@ label-urgent = %index% label-urgent-background = ${colors.alert} label-urgent-padding = 1 -[module/mpd] -type = internal/mpd -format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next> - -icon-prev = -icon-stop = -icon-play = -icon-pause = -icon-next = - -label-song = %title% (%artist%) -label-song-maxlen = 25 -label-song-ellipsis = true - [module/backlight-acpi] type = internal/backlight card = intel_backlight -format-underline = #9f78e1 +format-prefix = " " +format-underline = #4bffdc [module/cpu] type = internal/cpu interval = 2 -format-prefix = " " -format-prefix-foreground = ${colors.foreground-alt} -format-underline = #f90000 +format-prefix = " " +format-underline = ${colors.secondary} label = %percentage:2%% [module/memory] type = internal/memory interval = 2 -format-prefix = " " -format-prefix-foreground = ${colors.foreground-alt} +format-prefix = " " format-underline = #4bffdc label = %gb_used% @@ -152,18 +143,13 @@ type = internal/network interface = wlp3s0 interval = 3.0 -format-connected = <ramp-signal> <label-connected> +format-connected = <label-connected> format-connected-underline = #9f78e1 -label-connected = %essid% %signal%% +label-connected = " %essid% %signal%%" -format-disconnected = - -ramp-signal-0 = -ramp-signal-1 = -ramp-signal-2 = -ramp-signal-3 = -ramp-signal-4 = -ramp-signal-foreground = ${colors.foreground-alt} +label-disconnected = "" +format-disconnected-foreground = #666 +format-disconnected-underline = #9f78e1 [module/eth] type = internal/network @@ -171,8 +157,7 @@ interface = enp6s0 interval = 3.0 format-connected-underline = #55aa55 -format-connected-prefix = " " -format-connected-prefix-foreground = ${colors.foreground-alt} +format-connected-prefix = " " label-connected = %local_ip% format-disconnected = @@ -181,14 +166,13 @@ format-disconnected = type = internal/date interval = 1 -date-alt = -date = " %Y-%m-%d" +date-alt = "" +date = " %a %Y-%m-%d" time-alt = %H:%M time = %H:%M:%S -format-prefix = -format-prefix-foreground = ${colors.foreground-alt} +format-prefix = format-underline = #0a6cf5 label = %date% %time% @@ -196,36 +180,19 @@ label = %date% %time% [module/pulseaudio] type = internal/pulseaudio -format-volume = <label-volume> <bar-volume> -label-volume = VOL %percentage%% -label-volume-foreground = ${root.foreground} +format-volume = <ramp-volume> <label-volume> +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +label-volume = %percentage%% -;label-muted = 🔇 muted -; FIXME -label-muted = muted +label-muted = label-muted-foreground = #666 -bar-volume-width = 10 -bar-volume-foreground-0 = #55aa55 -bar-volume-foreground-1 = #55aa55 -bar-volume-foreground-2 = #55aa55 -bar-volume-foreground-3 = #55aa55 -bar-volume-foreground-4 = #55aa55 -bar-volume-foreground-5 = #f5a70a -bar-volume-foreground-6 = #ff5555 -bar-volume-gradient = false -bar-volume-indicator = | -;bar-volume-indicator-font = 2 -bar-volume-fill = ─ -;bar-volume-fill-font = 2 -bar-volume-empty = ─ -;bar-volume-empty-font = 2 -bar-volume-empty-foreground = ${colors.foreground-alt} +click-right = pavucontrol [module/battery] type = internal/battery -battery = BAT0 -adapter = AC full-at = 98 format-charging = <animation-charging> <label-charging> @@ -234,26 +201,20 @@ format-charging-underline = #ffb52a format-discharging = <animation-discharging> <label-discharging> format-discharging-underline = ${self.format-charging-underline} -format-full-prefix = " " -format-full-prefix-foreground = ${colors.foreground-alt} +format-full-prefix = " " +format-full-prefix-foreground = ${colors.green} format-full-underline = ${self.format-charging-underline} -ramp-capacity-0 = -ramp-capacity-1 = -ramp-capacity-2 = -ramp-capacity-foreground = ${colors.foreground-alt} - -animation-charging-0 = -animation-charging-1 = -animation-charging-2 = -animation-charging-foreground = ${colors.foreground-alt} -animation-charging-framerate = 750 +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-foreground = ${colors.green} +animation-charging-framerate = 1000 -animation-discharging-0 = -animation-discharging-1 = -animation-discharging-2 = -animation-discharging-foreground = ${colors.foreground-alt} -animation-discharging-framerate = 750 +animation-discharging-0 = +animation-discharging-1 = +animation-discharging-2 = +animation-discharging-framerate = 1000 label-full = %percentage%% %consumption%W label-charging = %percentage%% %consumption%W %time% @@ -264,7 +225,7 @@ time-format = %H:%M [module/temperature] type = internal/temperature thermal-zone = 0 -warn-temperature = 60 +base-temperature = 20 format = <ramp> <label> format-underline = #f50a4d @@ -275,10 +236,11 @@ label = %temperature-c% label-warn = %temperature-c% label-warn-foreground = ${colors.secondary} -ramp-0 = -ramp-1 = -ramp-2 = -ramp-foreground = ${colors.foreground-alt} +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = [settings] screenchange-reload = true diff --git a/dot.config-rofi-config.rasi b/dot.config-rofi-config.rasi index a86a69a..f362710 100644 --- a/dot.config-rofi-config.rasi +++ b/dot.config-rofi-config.rasi @@ -2,4 +2,5 @@ configuration { modi: "drun,run,ssh"; dpi: 0; theme: "DarkBlue"; + show-icons: true; } diff --git a/dot.config-sway-config b/dot.config-sway-config new file mode 100644 index 0000000..0880128 --- /dev/null +++ b/dot.config-sway-config @@ -0,0 +1,192 @@ +set $mod Mod4 + +output eDP-1 scale 2 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font pango:Source Code Pro Medium 8 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +workspace_layout tabbed + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec kitty-1 + +# kill focused window +bindsym $mod+Shift+c kill + +# start rofi (a program launcher) +bindsym $mod+Shift+p exec rofi -show run +bindsym $mod+p exec rofi -show drun + +# change focus +bindsym $mod+n focus left +bindsym $mod+r focus down +bindsym $mod+s focus up +bindsym $mod+g focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+n move left +bindsym $mod+Shift+r move down +bindsym $mod+Shift+s move up +bindsym $mod+Shift+g move right + +# alternatively, you can use the cursor 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 + +bindsym $mod+Mod1+n focus output left +bindsym $mod+Mod1+r focus output down +bindsym $mod+Mod1+s focus output up +bindsym $mod+Mod1+g focus output right + +bindsym $mod+Mod1+Shift+n move workspace to output left +bindsym $mod+Mod1+Shift+r move workspace to output down +bindsym $mod+Mod1+Shift+s move workspace to output up +bindsym $mod+Mod1+Shift+g move workspace to output right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+b fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+t layout stacking +bindsym $mod+d layout tabbed +bindsym $mod+u layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+c focus parent + +# focus the child container +bindsym $mod+i focus child + +# 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 + +# reload the configuration file +bindsym $mod+q reload +# restart sway inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+a restart +# exit sway +bindsym $mod+Shift+q exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym n resize shrink width 10 px or 10 ppt + bindsym r resize grow height 10 px or 10 ppt + bindsym s resize shrink height 10 px or 10 ppt + bindsym g resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+a mode "resize" + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + swaybar_command waybar + + position top + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + status_command while date +'%Y-%m-%d %k:%M:%S'; do sleep 1; done + + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + } +} + +bindsym XF86MonBrightnessUp exec xbacklight -inc 10 +bindsym XF86MonBrightnessDown exec xbacklight -dec 10 +bindsym $mod+Escape exec loginctl lock-session +bindsym $mod+Shift+Escape exec pkill -u $(id -u) -USR1 swayidle +#bindsym XF86Sleep exec $lockcommand, exec systemctl suspend +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% +bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle +#bindsym $mod+F1 exec setxkbmap de bone +#bindsym $mod+Shift+F1 exec setxkbmap de +#bindsym $mod+F2 exec setxkbmap de ru +#bindsym $mod+F3 exec setxkbmap gr +#bindsym $mod+F4 exec setxkbmap us + +input * { + xkb_layout de + xkb_variant bone +} + +output * { + bg ~/Pictures/rainbow_colorful_background_lines_patterns_66008_2560x1440.png fill +} + +exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec swayidle -w lock "swaylock -f" before-sleep "loginctl lock-session" timeout 600 'swaymsg "output * dpms off"; loginctl lock-session' resume 'swaymsg "output * dpms on"' +# Lat/Lon for Aachen +exec wlsunset -l 50.8 -L 6.0 diff --git a/dot.config-swaylock-config b/dot.config-swaylock-config new file mode 100644 index 0000000..dfd94d1 --- /dev/null +++ b/dot.config-swaylock-config @@ -0,0 +1,4 @@ +image=~/.i3lock.png +show-keyboard-layout +indicator-caps-lock +show-failed-attempts diff --git a/dot.config-waybar-config b/dot.config-waybar-config new file mode 100644 index 0000000..fc86430 --- /dev/null +++ b/dot.config-waybar-config @@ -0,0 +1,168 @@ +// -*- javascript -*- vim:ft=javascript sw=4 et +{ + "layer": "top", // Waybar at top layer + "position": "top", // Waybar position (top|bottom|left|right) + // "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + // Choose the order of the modules + "modules-left": [ + "sway/workspaces", + "sway/mode" + // , + // "custom/media" + ], + "modules-center": ["sway/window"], + "modules-right": [ + // "mpd", + "idle_inhibitor", + "pulseaudio", + "network", + "cpu", + "memory", + "temperature", + "backlight", + // "sway/language", + "battery", + "clock", + "tray" + ], + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "sway/mode": { + "format": "<span style=\"italic\">{}</span>" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": "<span color=\"#f53c3c\"></span> ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + "format": "{:%T}", + "interval": 1, + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} + +// Local Variables: +// indent-tabs-mode: nil +// End: diff --git a/dot.config-waybar-style.css b/dot.config-waybar-style.css new file mode 100644 index 0000000..994b09f --- /dev/null +++ b/dot.config-waybar-style.css @@ -0,0 +1,231 @@ +* { + border: none; + border-radius: 0; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: "Source Code Pro", "Font Awesome 5 Free"; + font-size: 12px; + min-height: 0; +} + +window#waybar { + background-color: rgba(43, 48, 59, 0.5); + border-bottom: 3px solid rgba(100, 114, 125, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +#workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); + box-shadow: inset 0 -1px #ffffff; +} + +#workspaces button.focused { + background-color: #64727D; + box-shadow: inset 0 -1px #ffffff; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + /* border-bottom: 3px solid #ffffff; */ + box-shadow: inset 0 -1px #fff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#mpd { + padding: 0 10px; + margin: 0 4px; + color: #ffffff; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + background-color: #64727D; +} + +#battery { + background-color: #ffffff; + color: #000000; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#cpu { + background-color: #2ecc71; + color: #000000; +} + +#memory { + background-color: #9b59b6; +} + +#disk { + background-color: #964B00; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + background-color: #2980b9; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + background-color: #f1c40f; + color: #000000; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f0932b; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #2980b9; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} diff --git a/dot.emacs.d/.gitignore b/dot.emacs.d/.gitignore index 5c52875..368c9cc 100644 --- a/dot.emacs.d/.gitignore +++ b/dot.emacs.d/.gitignore @@ -13,3 +13,4 @@ /.lsp-session-v1 /abbrev_defs /elpy +/eln-cache diff --git a/dot.emacs.d/init.el b/dot.emacs.d/init.el index 441b922..87e338b 100644 --- a/dot.emacs.d/init.el +++ b/dot.emacs.d/init.el @@ -9,12 +9,13 @@ (package-refresh-contents) (package-install 'use-package t)) (require 'use-package) -(setq use-package-always-ensure t) +(setq use-package-always-ensure t + use-package-verbose t) -(defvar --backup-directory (concat user-emacs-directory "backups")) -(if (not (file-exists-p --backup-directory)) - (make-directory --backup-directory t)) -(setq backup-directory-alist `(("." . ,--backup-directory))) +(let ((--backup-directory (concat user-emacs-directory "backups"))) + (unless (file-exists-p --backup-directory) + (make-directory --backup-directory t)) + (setq backup-directory-alist `(("." . ,--backup-directory)))) (setq make-backup-files t ; backup of a file the first time it is saved. backup-by-copying t ; don't clobber symlinks version-control t ; version numbers for backup files @@ -26,6 +27,15 @@ auto-save-timeout 20 ; number of seconds idle time before auto-save (default: 30) auto-save-interval 200 ; number of keystrokes between auto-saves (default: 300) ) +(defun qsx-backup-enable-predicate (name) + (let ((directory (file-name-directory (file-truename (expand-file-name name)))) + (auto-save-list-directory + (file-name-as-directory + (file-truename (expand-file-name "auto-save-list" user-emacs-directory))))) + (if (string= directory auto-save-list-directory) + nil + (normal-backup-enable-predicate name)))) +(setq backup-enable-predicate #'qsx-backup-enable-predicate) (let ((default-directory (concat user-emacs-directory @@ -68,6 +78,7 @@ company-backends))))) (use-package company-auctex :if (display-graphic-p) + :ensure nil :config (company-auctex-init)) (use-package company-bibtex :if (display-graphic-p) @@ -178,8 +189,6 @@ (show-paren-mode 1) -(use-package salt-mode) - (use-package ansible) (use-package poly-ansible) @@ -217,11 +226,12 @@ (add-hook 'mail-mode-hook #'turn-on-auto-fill) (add-hook 'mail-mode-hook #'mail-text) +(defun qsx-enable-TeX-fold-mode () + (TeX-fold-mode 1)) + (use-package tex :if (display-graphic-p) - :ensure auctex - :init - (setq reftex-plug-into-AUCTeX t) + :ensure nil :config (setq TeX-auto-save nil TeX-parse-self t @@ -229,10 +239,20 @@ font-latex-fontify-sectioning 'color font-latex-fontify-script 'multi-level fill-column 80) - (add-hook 'TeX-mode-hook #'turn-on-auto-fill)) + (dolist (f '(qsx-enable-TeX-fold-mode + turn-on-auto-fill + prettify-symbols-mode)) + (add-hook 'TeX-mode-hook f))) + +(use-package reftex + :if (display-graphic-p) + :config + (setq reftex-plug-into-AUCTeX t) + (add-hook 'TeX-mode-hook #'reftex-mode)) (use-package auctex-latexmk :if (display-graphic-p) + :ensure nil :config (auctex-latexmk-setup) (setq TeX-command-default "LatexMk")) @@ -268,6 +288,26 @@ (add-hook 'text-mode-hook #'turn-on-auto-fill) +(use-package json-mode) + +(use-package adoc-mode) + +(use-package dpkg-dev-el + ;; In Debian, it’s provided by a debian package, no need to install from MELPA + :if (not (file-exists-p "/etc/debian_version"))) + +(use-package haskell-mode) + +(use-package ledger-mode + :config + (setq ledger-default-date-format "%Y-%m-%d" + ledger-use-iso-dates t)) + +;; Use keypad comma as decimal separator +(use-package calc + :config + (define-key calc-digit-map (kbd "<kp-separator>") ".")) + ;;; Mail (use-package gnus :config @@ -276,6 +316,7 @@ message-sendmail-envelope-from 'header message-send-mail-function 'message-send-mail-with-sendmail message-elide-ellipsis "[…]" + message-forward-as-mime t ;; message-alternative-emails message-confirm-send t mail-user-agent 'gnus-user-agent @@ -316,7 +357,7 @@ (program ,notmuch) (remove-prefix ,(concat notmuch-database-path "/"))))))) (add-hook 'message-setup-hook (defun qsx-message-add-my-headers () - (message-add-header "Openpgp: id=E384009D3B54DCD321BF953295EE94A432583DB1; url=https://pgp.mit.edu/pks/lookup?op=get&search=0x95EE94A432583DB1; preference=signencrypt")))) + (message-add-header "Openpgp: id=E384009D3B54DCD321BF953295EE94A432583DB1; url=https://keys.openpgp.org/vks/v1/by-fingerprint/E384009D3B54DCD321BF953295EE94A432583DB1; preference=signencrypt")))) (use-package gnus-alias :ensure t diff --git a/dot.gitconfig b/dot.gitconfig index c2ffede..91c162d 100644 --- a/dot.gitconfig +++ b/dot.gitconfig @@ -21,3 +21,5 @@ ff = only [sendemail] bcc = fcc-sent@qsuscs.de +[init] + defaultBranch = main diff --git a/dot.local-bin-i3lock--wrapper b/dot.local-bin-i3lock--wrapper new file mode 100755 index 0000000..e5532ad --- /dev/null +++ b/dot.local-bin-i3lock--wrapper @@ -0,0 +1,6 @@ +#!/bin/sh +set -x +pkill -USR1 -u `id -u` dunst +/usr/bin/i3lock -n -i ~/.i3lock.png & +trap "kill $!; pkill -USR2 -u `id -u` dunst" EXIT +wait $! diff --git a/dot.local-bin-nm--tagger b/dot.local-bin-nm--tagger index f2de0d2..c23c277 100755 --- a/dot.local-bin-nm--tagger +++ b/dot.local-bin-nm--tagger @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.7 +#!/usr/bin/env python3 """Tagging script based on mail folder names for Notmuch This scripts iterates through all messages with ``tag:new``, and replaces that diff --git a/dot.local-bin-sm b/dot.local-bin-sm index 618392e..8c3f4f4 100755 --- a/dot.local-bin-sm +++ b/dot.local-bin-sm @@ -3,7 +3,7 @@ set -e set -x mbsync -a || true notmuch new -[ -d ~/.maildir/GMail ] && (cd ~/.maildir/GMail && gmi sync) +[ -d ~/.maildir/GMail ] && (cd ~/.maildir/GMail && gmi sync || true) new=$(notmuch search --output=messages tag:new | xargs) [ -z "$new" ] && exit notmuch config set query.new "$new" diff --git a/dot.signature--asta b/dot.signature--asta index 20a7d8f..f5c6e7a 100644 --- a/dot.signature--asta +++ b/dot.signature--asta @@ -7,5 +7,5 @@ Pontwall 3 52062 Aachen Deutschland -Telefon: +49 241 80 93792 +Telefon: +49 241 80 93798 Web: https://www.asta.rwth-aachen.de @@ -1,5 +1,5 @@ # -*- shell-script -*- -export GOPATH=~/src/go/ +export GOPATH=~/src/go export LESS="FRX" export PATH=${PATH/::/:} export GPG_TTY=$(tty) @@ -19,7 +19,11 @@ path=( /sbin(/N) $path ) -typeset -xU path +manpath=( + ~/.local/share/man(/N) + $manpath +) +typeset -xU path manpath [ -S ~/.gnupg/S.gpg-agent.ssh ] && export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh [ -S /run/user/$EUID/gnupg/S.gpg-agent.ssh ] && export SSH_AUTH_SOCK=/run/user/$EUID/gnupg/S.gpg-agent.ssh (( $+commands[rbenv] )) && eval "$(rbenv init -)" |
