summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop.org1303
1 files changed, 1303 insertions, 0 deletions
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]
+ name = Thanos Apollo
+ signingkey = 5F6B32E27F433AA9E42A530A0A50703D1CE7AE29
+ [commit]
+ gpgsign = true
+ [format]
+ subjectPrefix = PATCH
+ [sendemail]
+ from = Thanos Apollo <[email protected]>
+ smtpserver = smtp.fastmail.com
+ smtpuser = [email protected]
+ smtpencryption = ssl
+ smtpserverport = 465
+ annotate = yes
+
+ [credential "smtp://smtp.fastmail.com:465"]
+ helper = "!f() { echo [email protected]; 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": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
+ },
+ "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 <term>' option, then you will need to add 'screen.<term>' 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 <[email protected]>
+ #
+ ##############################################################################
+
+ 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
+ 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