From c55745c436057857e2dfa11d2086e650c5a5b848 Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Fri, 5 May 2023 16:39:01 +0300 Subject: Add desktop configuration as org Add configuration for gitconfig, mbsyncrc, hyprland and others as org file --- desktop.org | 1303 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1303 insertions(+) create mode 100644 desktop.org diff --git a/desktop.org b/desktop.org new file mode 100644 index 0000000..e14b10b --- /dev/null +++ b/desktop.org @@ -0,0 +1,1303 @@ +#+TITLE: General System Configurations +#+PROPERTY: header-args :mkdirp yes +#+auto_tangle: t +#+STARTUP: overview +* Git +#+begin_src conf :tangle ~/.gitconfig + [user] + email = public@thanosapollo.com + name = Thanos Apollo + signingkey = 5F6B32E27F433AA9E42A530A0A50703D1CE7AE29 + [commit] + gpgsign = true + [format] + subjectPrefix = PATCH + [sendemail] + from = Thanos Apollo + smtpserver = smtp.fastmail.com + smtpuser = public@thanosapollo.com + smtpencryption = ssl + smtpserverport = 465 + annotate = yes + + [credential "smtp://smtp.fastmail.com:465"] + helper = "!f() { echo username=public@thanosapollo.com; echo \"password=$(pass show fastmail.com/thanosapollo.com | sed -n '3p')\"; }; f" +#+end_src +* Hyprland +** Config +#+begin_src conf :tangle ~/.config/hypr/hyprland.conf + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor=transform,preferred,auto,auto + + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Some default env vars. + env = XCURSOR_SIZE,24 + + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input { + kb_layout = us,gr,my-cyr + kb_variant = + kb_model = + kb_options = ctrl:swapcaps, grp:alt_space_toggle + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + } + + general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + gaps_in = 5 + gaps_out = 10 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + layout = master + } + + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + active_opacity = 0.98 + inactive_opacity = 0.99 + rounding = 10 + blur = no + blur_size = 3 + blur_passes = 1 + blur_new_optimizations = on + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + } + + animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default + } + + dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this + } + + master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = false + mfact = 0.53 + } + + gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off + } + + # Personal Configuration for Hyprland + # Thanos Apollo 2023 + + # See https://wiki.hyprland.org/Configuring/ for more + + device:epic mouse V1 { + sensitivity = -0.5 + } + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + $mainMod = CTRL_ALT + + # Binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = , F5, exec, "/home/$USER/dotfiles/scripts/keyboard-light-x220.sh" + bind = , F1, exec, swaylock --screenshot --clock --effect-blur 10x9 --indicator + bind = , F8, exec, brightnessctl set +5% + bind = , F7, exec, brightnessctl set 5-% + bind = , XF86AudioLowerVolume, exec, amixer sset Master 5%- + bind = , XF86AudioRaiseVolume, exec, amixer sset Master 5%+ + + bind = $mainMod, Return, exec, emacsclient -c + bind = $mainMod, W, exec, kitty + bind = $mainMod, Q, killactive, + bind = $mainMod SHIFT, Q, exit, + bind = $mainMod, R, exec, rofi -show drun + bind = $mainMod, E, exec, tessen --dmenu=rofi + bind = $mainMod, V, togglefloating, + bind = $mainMod, J, togglesplit, # dwindle + bind = ALT, F12, exec, grim -g "$(slurp)" + bind = ALT, F11, fullscreen + + # Move focus with mainMod + arrow keys + bind = $mainMod, B, movefocus, l + bind = $mainMod, F, movefocus, r + bind = $mainMod, N, movefocus, d + bind = $mainMod, P, movefocus, u + + bind = $mainMod SHIFT, P, movewindow, u + bind = $mainMod SHIFT, N, movewindow, d + bind = $mainMod SHIFT, F, movewindow, r + bind = $mainMod SHIFT, B, movewindow, l + + + # Switch workspaces with mainMod + [0-9] + bind = $mainMod, 1, workspace, 1 + bind = $mainMod, 2, workspace, 2 + bind = $mainMod, 3, workspace, 3 + bind = $mainMod, 4, workspace, 4 + bind = $mainMod, 5, workspace, 5 + bind = $mainMod, 6, workspace, 6 + bind = $mainMod, 7, workspace, 7 + bind = $mainMod, 8, workspace, 8 + bind = $mainMod, 9, workspace, 9 + bind = $mainMod, 0, workspace, 10 + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + bind = $mainMod SHIFT, 1, movetoworkspace, 1 + bind = $mainMod SHIFT, 2, movetoworkspace, 2 + bind = $mainMod SHIFT, 3, movetoworkspace, 3 + bind = $mainMod SHIFT, 4, movetoworkspace, 4 + bind = $mainMod SHIFT, 5, movetoworkspace, 5 + bind = $mainMod SHIFT, 6, movetoworkspace, 6 + bind = $mainMod SHIFT, 7, movetoworkspace, 7 + bind = $mainMod SHIFT, 8, movetoworkspace, 8 + bind = $mainMod SHIFT, 9, movetoworkspace, 9 + bind = $mainMod SHIFT, 0, movetoworkspace, 10 + + # Scroll through existing workspaces with mainMod + scroll + bind = ALT, mouse_down, workspace, e+1 + bind = ALT, mouse_up, workspace, e-1 + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = ALT, mouse:272, movewindow + bindm = ALT, mouse:273, resizewindow + + exec-once = waybar + exec-once = hyprpaper + exec-once = emacs --daemon + exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +#+end_src + +** Hyprpaper +#+begin_src conf :tangle ~/.config/hypr/hyprpaper.conf + preload = ~/dotfiles/pictures/wallpaper-cyberpunk.jpg + preload = ~/dotfiles/pictures/wallpaper-cyberpunk2.jpg + + wallpaper = DP-1, ~/dotfiles/pictures/wallpaper-cyberpunk.jpg + + wallpaper = HDMI-A-1, ~/dotfiles/pictures/wallpaper-cyberpunk.jpg + + wallpaper = LVDS-1, ~/dotfiles/pictures/wallpaper-cyberpunk.jpg +#+end_src +* Waybar +** Configuration +#+begin_src conf :tangle ~/.config/waybar/config.jsonc + { + "layer": "top", + "position": "top", + "mod": "dock", + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "height": 0, + "modules-left": [ + "clock", + "custom/weather" + // "hyprland/window", + ], + "modules-center": ["wlr/workspaces"], + "modules-right": [ + "tray", + "custom/updates", + "custom/language", + "battery", + "backlight", + "custom/volume" + // "pulseaudio#microphone" + ], + + "hyprland/window": { + "format": "{}" + }, + "wlr/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + //"format": "{icon}", + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [], + "10": [] + } + }, + "custom/updates": { + "exec": "(pacman -Qu ; paru -Qua) | wc -l", + "interval": 7200, + "format": " {}" + }, + "custom/weather" : { + "tooltip" : true, + "format" : "{}", + "interval" : 30, + "exec" : "~/dotfiles/scripts/waybar-wttr.py", + "return-type" : "json" + }, + "tray": { + "icon-size": 13, + "spacing": 10 + }, + "clock": { + "format": "{: %R  %d/%m}", + "tooltip-format": "{:%Y %B}\n{calendar}" + }, + "backlight": { + "device": "intel_backlight", + "format": "{icon} {percent}%", + "format-icons": ["", "", ""], + "on-scroll-up": "brightnessctl set 1%+", + "on-scroll-down": "brightnessctl set 1%-", + "min-length": 6 + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{time} {icon}", + "format-icons": ["", "", "", "", "", "", "", "", "", "", ""] + }, + "pulseaudio": { + "format": "{icon} {volume}%", + "tooltip": false, + "format-muted": " Muted", + "on-click": "pamixer -t", + "on-scroll-up": "pamixer -i 5", + "on-scroll-down": "pamixer -d 5", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + "custom/volume": { + "exec": "~/dotfiles/scripts/sound.sh", + "interval": 1, + "format": " {}", + "tooltip": true + } + // "custom/pipewire": { + // "format": {}, + // "exec": "awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)", + // "interval": 10 + // }, + } +#+end_src + +** Style +#+begin_src css :tangle ~/.config/waybar/style.css + ,* { + border: none; + border-radius: 0; + font-family: Jetbrains Mono, Cartograph CF Nerd Font, monospace; + font-weight: bold; + font-size: 14px; + min-height: 0; + } + + window#waybar { + background: rgba(21, 18, 27, 0); + color: #cdd6f4; + } + + tooltip { + background: #0d1017; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + } + + #workspaces button { + padding: 5px; + color: #313244; + margin-right: 5px; + } + + #workspaces button.active { + color: #39bae6; + } + + #workspaces button.focused { + color: #a6adc8; + background: #eba0ac; + border-radius: 10px; + } + + #workspaces button.urgent { + color: #11111b; + background: #a6e3a1; + border-radius: 10px; + } + + #workspaces button:hover { + background: #11111b; + color: #cdd6f4; + border-radius: 10px; + } + + #custom-language, + #custom-updates, + #custom-caffeine, + #custom-weather, + #window, + #clock, + #battery, + #pulseaudio, + #custrom-volume, + #network, + #workspaces, + #tray, + #backlight { + background: #0d1017; + padding: 0px 10px; + margin: 3px 0px; + margin-top: 10px; + border: 1px solid #181825; + } + + #tray { + border-radius: 10px; + margin-right: 10px; + } + + #workspaces { + background: #0d1017; + border-radius: 10px; + margin-left: 10px; + padding-right: 0px; + padding-left: 5px; + } + + #custom-caffeine { + color: #89dceb; + border-radius: 10px 0px 0px 10px; + border-right: 0px; + margin-left: 10px; + } + + #custom-language { + color: #f38ba8; + border-left: 0px; + border-right: 0px; + } + + #custom-updates { + color: #ff8f40; + border-left: 0px; + border-right: 0px; + } + + #window { + border-radius: 10px; + margin-left: 20px; + margin-right: 60px; + } + + #clock { + color: #39bae6; + border-radius: 10px 0px 0px 10px; + margin-left: 0px; + border-right: 0px; + } + + #network { + color: #f9e2af; + border-left: 0px; + border-right: 0px; + } + + #pulseaudio { + color: #59c2ff; + border-left: 5px; + border-right: 5px; + } + #custom-volume { + background: #0d1017; + color: #59c2ff; + padding: 8px; + margin-top: 11px; + margin-bottom: 3px; + border-left: 0px; + border-right: 0px; + } + + #battery { + color: #a6e3a1; + border-radius: 0 10px 10px 0; + margin-right: 10px; + border-left: 0px; + + } + + #custom-weather { + border-radius: 0px 10px 10px 0px; + border-right: 0px; + margin-left: 0px; + } +#+end_src + +* Moc +** Config +#+begin_src conf :tangle ~/.moc/config + StartInMusicDir = yes + + # How to sort? FileName is the option's only value for now. + Sort = FileName + + # Show errors in the streams (for example, broken frames in MP3 files)? + ShowStreamErrors = no + + # Ignore CRC errors in MP3 files? Most players do that, so the default + # value is 'yes'. + #MP3IgnoreCRCErrors = yes + + # Set playback toggles. + #Repeat = no + #Shuffle = no + AutoNext = yes + + # Default FormatString: + # + # %n - Track number + # %a - Artist + # %A - Album + # %t - Title + # %(X:TRUE:FALSE) - Ternary expression: if X exists, do TRUE, + # otherwise FALSE. The escape character must + # be doubled (i.e., '\\'). (See zshmisc + # documentation for more information.) + # + #FormatString = "%(n:%n :)%(a:%a - :)%(t:%t:)%(A: \(%A\):)" + + # Input and output buffer sizes (in kilobytes). + #InputBuffer = 512 # Minimum value is 32KB + #OutputBuffer = 512 # Minimum value is 128KB + + # How much to fill the input buffer before playing (in kilobytes)? + # This can't be greater than the value of InputBuffer. While this has + # a positive effect for network streams, it also causes the broadcast + # audio to be delayed. + #Prebuffering = 64 + + # Use this HTTP proxy server for internet streams. If not set, the + # environment variables http_proxy and ALL_PROXY will be used if present. + # + # Format: HTTPProxy = PROXY_NAME:PORT + # + #HTTPProxy = + + # Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for + # debugging). You can enter more than one driver as a colon-separated + # list. The first working driver will be used. + SoundDriver = PULSEAUDIO:JACK:ALSA:OSS + + # Jack output settings. + # JackClientName = "moc" + # JackStartServer = no + # JackOutLeft = "system:playback_1" + # JackOutRight = "system:playback_2" + + # OSS output settings. + #OSSDevice = /dev/dsp + #OSSMixerDevice = /dev/mixer + #OSSMixerChannel1 = pcm # 'pcm', 'master' or 'speaker' + #OSSMixerChannel2 = master # 'pcm', 'master' or 'speaker' + + # ALSA output settings. If you need to dump the audio produced by MOC + # to a file for diagnostic purposes, the following setting of 'ALSADevice' + # should do that: + # + #ALSADevice=tee:hw,'/tmp/out.wav',wav + # + #ALSADevice = default + #ALSAMixer1 = PCM + ALSAMixer2 = Master + + # Under some circumstances on 32-bit systems, audio played continously + # for long periods of time may begin to stutter. Setting this option to + # 'yes' will force MOC to avoid ALSA's dmix resampling and prevent this + # stutter. But it also has other implications: + # + # - You may experience unacceptably high CPU load. + # - ALSA's resampler plug-ins will not be used. + # - The resampling may be of lower quality than ALSA would provide. + # - You may need to try different "ResampleMethod" option settings. + # - The "ForceSampleRate" option may be ineffective. + # - If libsamplerate is not configured, many audios may be unplayable. + # + #ALSAStutterDefeat = no + + # Save software mixer state? + # If enabled, a file 'softmixer' will be created in '~/.moc/' storing the + # mixersetting set when the server is shut down. + # Note that there is a "hidden" 'Amplification' setting in that file. + # Amplification (0-200) is used to scale the mixer setting (0-100). This + # results in a higher signal amplitude but may also produce clipping. + #Softmixer_SaveState = yes + + # Save equalizer state? + # If enabled, a file 'equalizer' will be created in '~/.moc/' storing the + # equalizer settings when the server is shut down. + # Note that there is a "hidden" 'Mixin' setting in that file. + # Mixin (0.0-1.0) is used to determine how much of the original signal is + # used after equalizing. 0 means to only use the equalized sound, while 1 + # effectively disabled the mixer. The default is 0.25. + #Equalizer_SaveState = yes + + # Show files with dot at the beginning? + #ShowHiddenFiles = no + + # Hide file name extensions? + #HideFileExtension = no + + # Show file format in menu? + #ShowFormat = yes + + # Show file time in menu? Possible values: 'yes', 'no' and 'IfAvailable' + # (meaning show the time only when it is already known, which often works + # faster). + #ShowTime = IfAvailable + + # Show time played as a percentage in the time progress bar. + #ShowTimePercent = no + + # Values of the TERM environment variable which are deemed to be managed by + # screen(1). If you are setting a specific terminal using screen(1)'s + # '-T ' option, then you will need to add 'screen.' to this list. + # Note that this is only a partial test; the value of the WINDOW environment + # variable must also be a number (which screen(1) sets). + #ScreenTerms = screen:screen-w:vt100 + + # Values of the TERM environment variable which are deemed to be xterms. If + # you are using MOC within screen(1) under an xterm, then add screen(1)'s + # TERM setting here as well to cause MOC to update the xterm's title. + #XTerms = xterm + #XTerms += xterm-colour:xterm-color + #XTerms += xterm-256colour:xterm-256color + #XTerms += rxvt:rxvt-unicode + #XTerms += rxvt-unicode-256colour:rxvt-unicode-256color + #XTerms += eterm + + # Theme file to use. This can be absolute path or relative to + # /usr/share/moc/themes/ (depends on installation prefix) or + # ~/.moc/themes/ . + # + # Example: Theme = laras_theme + # + Theme = nightly_enhanced + + # The theme used when running on an xterm. + # + # Example: XTermTheme = transparent-background + # + #XTermTheme = + + # Should MOC try to autoload the default lyrics file for an audio? (The + # default lyrics file is a text file with the same file name as the audio + # file name with any trailing "extension" removed.) + #AutoLoadLyrics = yes + + # MOC directory (where pid file, socket and state files are stored). + # You can use ~ at the beginning. + #MOCDir = ~/.moc + + # Use mmap() to read files. mmap() is much slower on NFS. + #UseMMap = no + + # Use MIME to identify audio files. This can make for slower loading + # of playlists but is more accurate than using "extensions". + #UseMimeMagic = no + + # Assume this encoding for ID3 version 1/1.1 tags (MP3 files). Unlike + # ID3v2, UTF-8 is not used here and MOC can't guess how tags are encoded. + # Another solution is using librcc (see the next option). This option is + # ignored if UseRCC is set to 'yes'. + #ID3v1TagsEncoding = WINDOWS-1250 + + # Use librcc to fix ID3 version 1/1.1 tags encoding. + #UseRCC = yes + + # Use librcc to filenames and directory names encoding. + #UseRCCForFilesystem = yes + + # When this option is set the player assumes that if the encoding of + # ID3v2 is set to ISO-8859-1 then the ID3v1TagsEncoding is actually + # that and applies appropriate conversion. + #EnforceTagsEncoding = no + + # Enable the conversion of filenames from the local encoding to UTF-8. + #FileNamesIconv = no + + # Enable the conversion of the xterm title from UTF-8 to the local encoding. + #NonUTFXterm = no + + # Should MOC precache files to assist gapless playback? + #Precache = yes + + # Remember the playlist after exit? + #SavePlaylist = yes + + # When using more than one client (interface) at a time, do they share + # the playlist? + #SyncPlaylist = yes + + # Choose a keymap file (relative to '~/.moc/' or using an absolute path). + # An annotated example keymap file is included ('keymap.example'). + # + # Example: Keymap = my_keymap + # + Keymap = keymap + + # Use ASCII rather than graphic characters for drawing lines. This + # helps on some terminals. + #ASCIILines = no + + # FastDirs, these allow you to jump directly to a directory, the key + # bindings are in the keymap file. + # + # Examples: Fastdir1 = /mp3/rock + # Fastdir2 = /mp3/electronic + # Fastdir3 = /mp3/rap + # Fastdir4 = /mp3/etc + # + #Fastdir1 = + #Fastdir2 = + #Fastdir3 = + #Fastdir4 = + #Fastdir5 = + #Fastdir6 = + #Fastdir7 = + #Fastdir8 = + #Fastdir9 = + #Fastdir10 = + + # How fast to seek (in number of seconds per keystroke). The first + # option is for normal seek and the second for silent seek. + #SeekTime = 1 + #SilentSeekTime = 5 + + # PreferredDecoders allows you to specify which decoder should be used + # for any given audio format. It is a colon-separated list in which + # each entry is of the general form 'code(decoders)', where 'code' + # identifies the audio format and 'decoders' is a comma-separated list + # of decoders in order of preference. + # + # The audio format identifier may be either a filename extension or a + # MIME media type. If the latter, the format is 'type/subtype' (e.g., + # 'audio/flac'). Because different systems may give different MIME + # media types, any 'x-' prefix of the subtype is ignored both here and + # in the actual file MIME type (so all combinations of 'audio/flac' and + # 'audio/x-flac' match each other). + # + # For Internet streams the matching is done on MIME media type and on + # actual content. For files the matches are made on MIME media type + # (if the 'UseMimeMagic' option is set) and on filename extension. The + # MIME media type of a file is not determined until the first entry for + # MIME is encountered in the list. + # + # The matching is done in the order of appearance in the list with any + # entries added from the command line being matched before those listed + # here. Therefore, if you place all filename extension entries before + # all MIME entries you will speed up MOC's processing of directories + # (which could be significant for remote file systems). + # + # The decoder list may be empty, in which case no decoders will be used + # for files (and files with that audio format ignored) while Internet + # streams will be assessed on the actual content. Any decoder position + # may contain an asterisk, in which case any decoder not otherwise listed + # which can handle the audio format will be used. It is not an error to + # list the same decoder twice, but neither does it make sense to do so. + # + # If you have a mix of audio and non-audio files in your directories, you + # may wish to include entries at top of the list which ignore non-audio + # files by extension. + # + # In summary, the PreferredDecoders option provides fine control over the + # type of matching which is performed (filename extension, MIME media + # type and streamed media content) and which decoder(s) (if any) are used + # based on the option's list entries and their ordering. + # + # Examples: aac(aac,ffmpeg) first try FAAD2 for AACs then FFmpeg + # mp3() ignore MP3 files + # wav(*,sndfile) use sndfile for WAV as a last resort + # ogg(vorbis,*):flac(flac,*) try Xiph decoders first + # ogg():audio/ogg() ignore OGG files, and + # force Internet selection by content + # gz():html() ignore some non-audio files + # + # Any unspecified audio formats default to trying all decoders. + # Any unknown (or misspelt) drivers are ignored. + # All names are case insensitive. + # The default setting reflects the historical situation modified by + # the experience of users. + # + #PreferredDecoders = aac(aac,ffmpeg):m4a(ffmpeg) + #PreferredDecoders += mpc(musepack,*,ffmpeg):mpc8(musepack,*,ffmpeg) + #PreferredDecoders += sid(sidplay2):mus(sidplay2) + #PreferredDecoders += wav(sndfile,*,ffmpeg) + #PreferredDecoders += wv(wavpack,*,ffmpeg) + #PreferredDecoders += audio/aac(aac):audio/aacp(aac):audio/m4a(ffmpeg) + #PreferredDecoders += audio/wav(sndfile,*) + + # The following PreferredDecoders attempt to handle the ambiguity surrounding + # container types such as OGG for files. The first two entries will force + # a local file to the correct decoder (assuming the .ogg file contains Vorbis + # audio), while the MIME media types will cause Internet audio streams to + # be assessed on content (which may be either Vorbis or Speex). + # + #PreferredDecoders += ogg(vorbis,ffmpeg):oga(vorbis,ffmpeg):ogv(ffmpeg) + #PreferredDecoders += opus(ffmpeg) + #PreferredDecoders += spx(speex) + #PreferredDecoders += application/ogg(vorbis):audio/ogg(vorbis) + + # Which resampling method to use. There are a few methods of resampling + # sound supported by libresamplerate. The default is 'Linear') which is + # also the fastest. A better description can be found at: + # + # http://www.mega-nerd.com/libsamplerate/api_misc.html#Converters + # + # but briefly, the following methods are based on bandlimited interpolation + # and are higher quality, but also slower: + # + # SincBestQuality - really slow (I know you probably have an xx GHz + # processor, but it's still not enough to not see + # this in the top output :) The worst case + # Signal-to-Noise Ratio is 97dB. + # SincMediumQuality - much faster. + # SincFastest - the fastest bandlimited interpolation. + # + # And these are lower quality, but much faster methods: + # + # ZeroOrderHold - really poor quality, but it's really fast. + # Linear - a bit better and a bit slower. + # + #ResampleMethod = Linear + + # Always use this sample rate (in Hz) when opening the audio device (and + # resample the sound if necessary). When set to 0 the device is opened + # with the file's rate. + #ForceSampleRate = 0 + + # By default, even if the sound card reports that it can output 24bit samples + # MOC converts 24bit PCM to 16bit. Setting this option to 'yes' allows MOC + # to use 24bit output. (The MP3 decoder, for example, uses this format.) + # This is disabled by default because there were reports that it prevents + # MP3 files from playing on some soundcards. + #Allow24bitOutput = no + + # Use realtime priority for output buffer thread. This will prevent gaps + # while playing even with heavy load. The user who runs MOC must have + # permissions to set such a priority. This could be dangerous, because it + # is possible that a bug in MOC will freeze your computer. + #UseRealtimePriority = no + + # The number of audio files for which MOC will cache tags. When this limit + # is reached, file tags are discarded on a least recently used basis (with + # one second resolution). You can disable the cache by giving it a size of + # zero. Note that if you decrease the cache size below the number of items + # currently in the cache, the number will not decrease immediately (if at + # all). + #TagsCacheSize = 256 + + # Number items in the playlist. + #PlaylistNumbering = yes + + # Main window layouts can be configured. You can change the position and + # size of the menus (directory and playlist). You have three layouts and + # can switch between then using the 'l' key (standard mapping). By default, + # only two layouts are configured. + # + # The format is as follows: + # + # - Each layout is described as a list of menu entries. + # - Each menu entry is of the form: + # + # menu(position_x, position_y, width, height) + # + # where 'menu' is either 'directory' or 'playlist'. + # - The parameters define position and size of the menu. They can + # be absolute numbers (like 10) or a percentage of the screen size + # (like 45%). + # - 'width' and 'height' can have also value of 'FILL' which means + # fill the screen from the menu's position to the border. + # - Menus may overlap. + # + # You must describe at least one menu (default is to fill the whole window). + # There must be at least one layout (Layout1) defined; others can be empty. + # + # Example: Layout1 = playlist(50%,50%,50%,50%) + Layout1 = directory(0,0,100%,100%):playlist(0,0,100%,100%) + CanStartInPlaylist = yes + # Layout3 = "" + # + # Just one layout, the directory will occupy the whole + # screen, the playlist will have 1/4 of the screen size + # and be positioned at lower right corner. (Note that + # because the playlist will be hidden by the directory + # you will have to use the TAB key to make the playlist + # visible.) + # + # Example: Layout1 = playlist(0,0,100%,10):directory(0,10,100%,FILL) + # + # The screen is split into two parts: playlist at the top + # and the directory menu at the bottom. Playlist will + # occupy 10 lines and the directory menu the rest. + # + #Layout1 = directory(0,0,50%,100%):playlist(50%,0,FILL,100%) + #Layout2 = directory(0,0,100%,100%):playlist(0,0,100%,100%) + #Layout3 = "" + + # When the song changes, should the menu be scrolled so that the currently + # played file is visible? + #FollowPlayedFile = yes + + # What to do if the interface was started and the server is already playing + # something from the playlist? If CanStartInPlaylist is set to 'yes', the + # interface will switch to the playlist. When set to 'no' it will start + # from the last directory. + #CanStartInPlaylist = yes + + # Executing external commands (1 - 10) invoked with key commands (F1 - F10 + # by default). + # + # Some arguments are substituted before executing: + # + # %f - file path + # %i - title made from tags + # %S - start block mark (in seconds) + # %E - end block mark (in seconds) + # + # Data from tags can also be substituted: + # + # %t - title + # %a - album + # %r - artist + # %n - track + # %m - time of the file (in seconds) + # + # The parameters above apply to the currently selected file. If you change + # them to capital letters, they are taken from the file currently playing. + # + # Programs are run using execv(), not a shell, so you can't do things like + # redirecting the output to a file. The command string is split using blank + # characters as separators; the first element is the command to be executed + # and the rest are its parameters, so if you use "echo Playing: %I" we run + # program 'echo' (from $PATH) with 2 parameters: the string 'Playing:' and + # the title of the file currently playing. Even if the title contains + # spaces, it's still one parameter and it's safe if it contains `rm -rf /`. + # + # Examples: ExecCommand1 = "cp %f /mnt/usb_drive" + # ExecCommand2 = "/home/joe/now_playing %I" + # + #ExecCommand1 = + #ExecCommand2 = + #ExecCommand3 = + #ExecCommand4 = + #ExecCommand5 = + #ExecCommand6 = + #ExecCommand7 = + #ExecCommand8 = + #ExecCommand9 = + #ExecCommand10 = + + # Display the cursor in the line with the selected file. Some braille + # readers (the Handy Tech modular series ZMU 737, for example) use the + # cursor to focus and can make use of it to present the file line even + # when other fields are changing. + #UseCursorSelection = no + + # Set the terminal title when running under xterm. + #SetXtermTitle = yes + + # Set the terminal title when running under screen(1). If MOC can detect + # that it is running under screen(1), then it will set an appropriate + # title (see description of ScreenTerms above). However, if multiple + # levels of screen management are involved, detection might fail and this + # could cause a screen upset. In that situation you can use this option + # to force screen titles off. + #SetScreenTitle = yes + + # Display full paths instead of just file names in the playlist. + #PlaylistFullPaths = yes + + # The following setting describes how block markers are displayed in + # the play time progress bar. Its value is a string of exactly three + # characters. The first character is displayed in a position which + # corresponds to the time marked as the start of a block and the last + # character to the time marked as the end of the block. The middle + # character is displayed instead if both the start and the end of the block + # would fall in the same position (within the resolution of the interface). + # You can turn off the displaying of these block marker positions by using + # three space characters. + #BlockDecorators = "`\"'" + + # How long (in seconds) to leave a message displayed on the screen. + # Setting this to a high value allows you to scroll through the messages + # using the 'hide_message' key. Setting it to zero means you'll have to + # be quick to see any message at all. Any new messages will be queued up + # and displayed after the current message's linger time expires. + #MessageLingerTime = 3 + + # Does MOC display a prefix on delayed messages indicating + # the number of queued messages still to be displayed? + #PrefixQueuedMessages = yes + + # String to append to the queued message count if any + # error messages are still waiting to be displayed. + #ErrorMessagesQueued = "!" + + # Self-describing ModPlug options (with 'yes' or 'no' values). + #ModPlug_Oversampling = yes + #ModPlug_NoiseReduction = yes + #ModPlug_Reverb = no + #ModPlug_MegaBass = no + #ModPlug_Surround = no + + # ModPlug resampling mode. + # Valid values are: + # + # FIR - 8 tap fir filter (extremely high quality) + # SPLINE - Cubic spline interpolation (high quality) + # LINEAR - Linear interpolation (fast, good quality) + # NEAREST - No interpolation (very fast, extremely bad sound quality) + # + #ModPlug_ResamplingMode = FIR + + # Other self-describing ModPlug audio characteristic options. + # (Note that the 32 bit sample size seems to be buggy.) + #ModPlug_Channels = 2 # 1 or 2 channels + #ModPlug_Bits = 16 # 8, 16 or 32 bits + #ModPlug_Frequency = 44100 # 11025, 22050, 44100 or 48000 Hz + #ModPlug_ReverbDepth = 0 # 0 (quiet) to 100 (loud) + #ModPlug_ReverbDelay = 0 # Delay in ms (usually 40-200ms) + #ModPlug_BassAmount = 0 # 0 (quiet) to 100 (loud). + #ModPlug_BassRange = 10 # Cutoff in Hz (10-100). + #ModPlug_SurroundDepth = 0 # Surround level 0(quiet)-100(heavy). + #ModPlug_SurroundDelay = 0 # Surround delay in ms, usually 5-40ms. + #ModPlug_LoopCount = 0 # 0 (never), n (times) or -1 (forever) + + # Self-describing TiMidity audio characteristic options. + #TiMidity_Rate = 44100 # Between 8000 and 48000 + #TiMidity_Bits = 16 # 8 or 16 + #TiMidity_Channels = 2 # 1 or 2 + #TiMidity_Volume = 100 # 0 to 800 + + # You can setup a TiMidity-Config-File here. + # Leave it unset to use library defaults (/etc/timidity.cfg mostly). + # Setting it to 'yes' also uses the library defaults. + # Set it to 'no' if you don't have any configuration file. + # Otherwise set it to the name of a specific file. + #TiMidity_Config = + + # Self-describing SidPlay2 audio characteristic options. + #SidPlay2_DefaultSongLength = 180 # If not in database (in seconds) + #SidPlay2_MinimumSongLength = 0 # Play at least n (in seconds) + #SidPlay2_Frequency = 44100 # 4000 to 48000 + #SidPlay2_Bits = 16 # 8 or 16 + #SidPlay2_Optimisation = 0 # 0 (worst quality) to 2 (best quality) + + # Set path to a HVSC-compatible database (if not set, database is disabled). + #SidPlay2_Database = + + # SidPlay2 playback Mode: + # + # "M": Mono (best for many SIDs) + # "S": Stereo + # "L"/"R": Left / Right + # + #SidPlay2_PlayMode = "M" + + # Use start-song information from SID ('yes') or start at first song + # ('no'). Songs before the start-song won't be played. (Note that this + # option previously took the values 1 and 0; these are now deprecated + # in favour of 'yes' and 'no'.) + #SidPlay2_StartAtStart = yes + + # Play sub-tunes. (Note that this option previously took the values 1 + # and 0; these are now deprecated in favour of 'yes' and 'no'.) + #SidPlay2_PlaySubTunes = yes + + # Run the OnSongChange command when a new song starts playing. + # Specify the full path (i.e. no leading '~') of an executable to run. + # Arguments will be passed, and you can use the following escapes: + # + # %a artist + # %r album + # %f filename + # %t title + # %n track + # %d file duration in XX:YY form + # %D file duration, number of seconds + # + # No pipes/redirects can be used directly, but writing a shell script + # can do the job. + # + # Example: OnSongChange = "/home/jack/.moc/myscript %a %r" + # + #OnSongChange = + + # If RepeatSongChange is 'yes' then MOC will execute the command every time + # a song starts playing regardless of whether or not it is just repeating. + # Otherwise the command will only be executed when a different song is + # started. + #RepeatSongChange = no + + # Run the OnStop command (full path, no arguments) when MOC changes state + # to stopped (i.e., when user stopped playing or changes a song). + #OnStop = "/home/jack/.moc/myscript_on_stop" + + # This option determines which song to play after finishing all the songs + # in the queue. Setting this to 'yes' causes MOC to play the song which + # follows the song being played before queue playing started. If set to + # 'no', MOC will play the song following the last song in the queue if it + # is in the playlist. The default is 'yes' because this is the way other + # players usually behave. (Note that this option previously took the + # values 1 and 0; these are now deprecated in favour of 'yes' and 'no'.) + #QueueNextSongReturn = yes +#+end_src + +** Keymap +#+begin_src fundamental :tangle ~/.moc/keymap + # MOC control keys: + quit_client = q + quit = Q + + # Menu and interface control keys: + go = f + menu_down = n + menu_up = p + menu_page_down = PAGE_DOWN + menu_page_up = PAGE_UP + menu_first_item = HOME + menu_last_item = END + search_menu = g / + toggle_read_tags = F + toggle_show_time = ^t + toggle_show_format = ^f + toggle_menu = TAB + toggle_layout = L + #toggle_hidden_files = H + next_search = ^g ^n + #show_lyrics = L + theme_menu = T + help = H ? + refresh = ^r + reload = r + + # Audio playing and positioning keys: + seek_forward = RIGHT + seek_backward = LEFT + seek_forward_fast = ] + seek_backward_fast = [ + pause = SPACE + stop = s + next = N + previous = P + toggle_shuffle = S + toggle_repeat = R + toggle_auto_next = X + toggle_mixer = x + go_url = o + + # Volume control keys: + volume_down_1 = < + volume_up_1 = > + volume_down_5 = , + volume_up_5 = . + volume_10 = M-1 + volume_20 = M-2 + volume_30 = M-3 + volume_40 = M-4 + volume_50 = M-5 + volume_60 = M-6 + volume_70 = M-7 + volume_80 = M-8 + volume_90 = M-9 + + # Directory navigation keys: defaults are Shift-number + # (i.e., 'shift 1' -> '!' -> 'Fastdir1'). + go_to_a_directory = i + go_to_music_directory = m + go_to_fast_dir1 = ! + go_to_fast_dir2 = @ + go_to_fast_dir3 = # + go_to_fast_dir4 = $ + go_to_fast_dir5 = % + go_to_fast_dir6 = ^ + go_to_fast_dir7 = & + go_to_fast_dir8 = * + go_to_fast_dir9 = ( + go_to_fast_dir10 = ) + go_to_playing_file = G + go_up = b + + # Playlist specific keys: + add_file = a + add_directory = A + plist_add_stream = ^u + delete_from_playlist = d + #playlist_full_paths = P + plist_move_up = u + #plist_move_down = j + save_playlist = V + remove_dead_entries = Y + clear_playlist = C + + # Queue manipulation keys: + enqueue_file = z + clear_queue = Z + + # User interaction control: + history_up = UP + history_down = DOWN + delete_to_start = ^u + delete_to_end = ^k + cancel = ^x ESCAPE + hide_message = M + + # Softmixer specific keys: + toggle_softmixer = w + toggle_make_mono = J + + # Equalizer specific keys: + toggle_equalizer = E + equalizer_refresh = e + equalizer_prev = K + #equalizer_next = k + + # External commands: + mark_start = ' + mark_end = " + exec_command1 = F1 + exec_command2 = F2 + exec_command3 = F3 + exec_command4 = F4 + exec_command5 = F5 + exec_command6 = F6 + exec_command7 = F7 + exec_command8 = F8 + exec_command9 = F9 + exec_command10 = F10 + + # The following commands are available but not assigned to any keys by + # default: + # + # toggle_percent Switch on/off play progress bar time percentage + # + +#+end_src + +** Themes +*** Nightly +#+begin_src fundamental :tangle ~/.moc/themes/nightly_enhanced + ############################################################################## + # + # this is a modification of the + # nightly theme by Wim Speekenbrink + # + ############################################################################## + + background = blue default + frame = blue default bold + window_title = blue default bold + directory = blue default bold + selected_directory = black magenta + playlist = blue default bold + selected_playlist = black magenta + file = blue default bold + selected_file = black magenta + marked_file = green default bold + marked_selected_file = magenta default bold + info = green default bold + selected_info = black magenta + marked_info = green default bold + marked_selected_info = green default bold + status = blue default bold + title = green default bold + state = blue default bold + current_time = magenta default bold + time_left = magenta default bold + total_time = magenta default bold + time_total_frames = blue default bold + sound_parameters = magenta default bold + legend = blue default bold + disabled = black default + enabled = blue default bold + empty_mixer_bar = blue default bold + filled_mixer_bar = black magenta + empty_time_bar = blue default bold + filled_time_bar = black magenta + entry = green default bold + entry_title = green default bold + error = red default bold + message = green default bold + plist_time = green default bold +#+end_src + +* iSync +#+begin_src conf :tangle ~/.mbsyncrc + IMAPAccount fastmail + Host imap.fastmail.com + Port 993 + User public@thanosapollo.com + PassCmd "pass show fastmail.com/thanosapollo.com | sed -n '3p'" + SSLType IMAPS + SSLVersions TLSv1.2 + CertificateFile /etc/ssl/certs/ca-certificates.crt + + IMAPStore fastmail-remote + Account fastmail + + MaildirStore fastmail-local + Path ~/Mail/Fastmail/ + Inbox ~/Mail/Fastmail/Inbox + Trash ~/Mail/Fastmail/Trash/ + SubFolders Verbatim + + Channel fastmail + Far :fastmail-remote: + Near :fastmail-local: + Patterns * + Expunge None + CopyArrivalDate yes + Sync All + Create Both + SyncState * +#+end_src -- cgit v1.2.3