commit 55a49a6ee0fbedf54bb1a03add57119f4182e1f1 Author: Henrik Bakken Date: Tue Apr 7 18:49:42 2020 +0200 first commit diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..50c0b7d --- /dev/null +++ b/i3/config @@ -0,0 +1,422 @@ +# i3 config file (v4) +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +# Set mod key (Mod1=, Mod4=) +set $mod Mod4 + +# set default desktop layout (default is tiling) +# workspace_layout tabbed + +# Configure border style +default_border pixel 1 +default_floating_border normal + +# Hide borders +hide_edge_borders none + +# change borders +bindsym $mod+u border none +bindsym $mod+y border pixel 1 +bindsym $mod+n border normal + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font xft:URWGothic-Book 11 + +# Use Mouse+$mod to drag floating windows +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec terminal + +# kill focused window +bindsym $mod+Shift+q kill + +# start program launcher +bindsym $mod+d exec --no-startup-id dmenu_recency + +# launch categorized menu +bindsym $mod+z exec --no-startup-id morc_menu + +################################################################################################ +## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ## +################################################################################################ + +exec --no-startup-id volumeicon +bindsym $mod+Ctrl+m exec terminal -e 'alsamixer' +#exec --no-startup-id pulseaudio +#exec --no-startup-id pa-applet +#bindsym $mod+Ctrl+m exec pavucontrol +################################################################################################ + +bindsym Pause exec amixer -q sset Master 3%+ +bindsym Print exec amixer -q sset Master 3%- +bindsym Scroll_Lock exec amixer -q sset Master toggle +################################################################################################ + +# Screen brightness controls +# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'" +# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'" + +# Start Applications +bindsym $mod+Ctrl+b exec terminal -e 'bmenu' +bindsym $mod+F2 exec chromium +bindsym $mod+F3 exec thunar +bindsym $mod+Shift+F3 exec ranger +bindsym $mod+F5 exec terminal -e 'mocp' +bindsym $mod+t exec --no-startup-id pkill compton +bindsym $mod+Ctrl+t exec --no-startup-id compton -b +bindsym $mod+Shift+d --release exec "killall dunst; exec notify-send 'restart dunst'" +bindsym F12 exec --no-startup-id i3-scrot +bindsym $mod+F12 --release exec --no-startup-id i3-scrot -w +bindsym $mod+Shift+F12 --release exec --no-startup-id i3-scrot -s +bindsym $mod+Ctrl+x --release exec --no-startup-id xkill + +# focus_follows_mouse no + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l 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+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# workspace back and forth (with/without active container) +workspace_auto_back_and_forth yes +bindsym $mod+b workspace back_and_forth +bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth + +# split orientation +bindsym $mod+bar split h;exec notify-send 'tile horizontally' +bindsym $mod+minus split v;exec notify-send 'tile vertically' +bindsym $mod+q split toggle + +# toggle fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# toggle sticky +bindsym $mod+Shift+s sticky toggle + +# focus the parent container +bindsym $mod+a focus parent + +# move the currently focused window to the scratchpad +# bindsym $mod+Shift+minus move scratchpad + +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +# bindsym $mod+minus scratchpad show + +#navigate workspaces next / previous +bindsym $mod+Ctrl+Right workspace next +bindsym $mod+Ctrl+Left workspace prev + +# Workspace names +# to display names or symbols instead of plain workspace numbers you can use +# something like: set $ws1 1:mail +# set $ws2 2: +set $ws1 1 +set $ws2 2 +set $ws3 3 +set $ws4 4 +set $ws5 5 +set $ws6 6 +set $ws7 7 +set $ws8 8 + +# switch to workspace +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 + +# Move focused container to workspace +bindsym $mod+Ctrl+1 move container to workspace $ws1 +bindsym $mod+Ctrl+2 move container to workspace $ws2 +bindsym $mod+Ctrl+3 move container to workspace $ws3 +bindsym $mod+Ctrl+4 move container to workspace $ws4 +bindsym $mod+Ctrl+5 move container to workspace $ws5 +bindsym $mod+Ctrl+6 move container to workspace $ws6 +bindsym $mod+Ctrl+7 move container to workspace $ws7 +bindsym $mod+Ctrl+8 move container to workspace $ws8 + +# Move to workspace with focused container +bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 + +# Open applications on specific workspaces +# assign [class="Thunderbird"] $ws1 +# assign [class="Pale moon"] $ws2 +# assign [class="Pcmanfm"] $ws3 +# assign [class="Skype"] $ws5 + +# Open specific applications in floating mode +for_window [title="alsamixer"] floating enable border pixel 1 +for_window [class="calamares"] floating enable border normal +for_window [class="Clipgrab"] floating enable +for_window [title="File Transfer*"] floating enable +for_window [class="fpakman"] floating enable +for_window [class="Galculator"] floating enable border pixel 1 +for_window [class="GParted"] floating enable border normal +for_window [title="i3_help"] floating enable sticky enable border normal +for_window [class="Lightdm-settings"] floating enable +for_window [class="Lxappearance"] floating enable sticky enable border normal +for_window [class="Manjaro-hello"] floating enable +for_window [class="Manjaro Settings Manager"] floating enable border normal +for_window [title="MuseScore: Play Panel"] floating enable +for_window [class="Nitrogen"] floating enable sticky enable border normal +for_window [class="Oblogout"] fullscreen enable +for_window [class="octopi"] floating enable +for_window [title="About Pale Moon"] floating enable +for_window [class="Pamac-manager"] floating enable +for_window [class="Pavucontrol"] floating enable +for_window [class="qt5ct"] floating enable sticky enable border normal +for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal +for_window [class="Simple-scan"] floating enable border normal +for_window [class="(?i)System-config-printer.py"] floating enable border normal +for_window [class="Skype"] floating enable border normal +for_window [class="Timeset-gui"] floating enable border normal +for_window [class="(?i)virtualbox"] floating enable border normal +for_window [class="Xfburn"] floating enable + +# switch to workspace with urgent window automatically +for_window [urgent=latest] focus + +# reload the configuration file +bindsym $mod+Shift+c reload + +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# Set shut down, restart and locking features +bindsym $mod+0 mode "$mode_system" +set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown +mode "$mode_system" { + bindsym l exec --no-startup-id i3exit lock, mode "default" + bindsym s exec --no-startup-id i3exit suspend, mode "default" + bindsym u exec --no-startup-id i3exit switch_user, mode "default" + bindsym e exec --no-startup-id i3exit logout, mode "default" + bindsym h exec --no-startup-id i3exit hibernate, mode "default" + bindsym r exec --no-startup-id i3exit reboot, mode "default" + bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" + + # exit system mode: "Enter" or "Escape" + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Resize window (you can also use the mouse for that) +bindsym $mod+r mode "resize" +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 l resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym j resize shrink height 10 px or 10 ppt + bindsym h 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 + + # exit resize mode: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Lock screen +bindsym $mod+9 exec --no-startup-id blurlock + +# Autostart applications +exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec --no-startup-id nitrogen --random ~/Wallpapers/; sleep 1; compton -b +#exec --no-startup-id manjaro-hello +exec --no-startup-id nm-applet +exec --no-startup-id xfce4-power-manager +exec --no-startup-id pamac-tray +exec --no-startup-id clipit +# exec --no-startup-id blueman-applet +# exec_always --no-startup-id sbxkb +exec --no-startup-id start_conky_maia +# exec --no-startup-id start_conky_green +exec --no-startup-id xautolock -time 10 -locker blurlock +exec_always --no-startup-id ff-theme-util +exec_always --no-startup-id fix_xcursor + +# HB STARTUP ADDITIONS +exec --no-startup-id setxkbmap -option "caps:escape" +exec --no-startup-id redshift-gtk +exec --no-startup-id megasync & +exec --no-startup-id dropbox start & +exec --no-startup-id nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=60 + + +# Color palette used for the terminal ( ~/.Xresources file ) +# Colors are gathered based on the documentation: +# https://i3wm.org/docs/userguide.html#xresources +# Change the variable name at the place you want to match the color +# of your terminal like this: +# [example] +# If you want your bar to have the same background color as your +# terminal background change the line 362 from: +# background #14191D +# to: +# background $term_background +# Same logic applied to everything else. +set_from_resource $term_background background +set_from_resource $term_foreground foreground +set_from_resource $term_color0 color0 +set_from_resource $term_color1 color1 +set_from_resource $term_color2 color2 +set_from_resource $term_color3 color3 +set_from_resource $term_color4 color4 +set_from_resource $term_color5 color5 +set_from_resource $term_color6 color6 +set_from_resource $term_color7 color7 +set_from_resource $term_color8 color8 +set_from_resource $term_color9 color9 +set_from_resource $term_color10 color10 +set_from_resource $term_color11 color11 +set_from_resource $term_color12 color12 +set_from_resource $term_color13 color13 +set_from_resource $term_color14 color14 +set_from_resource $term_color15 color15 + +# Start i3bar to display a workspace bar (plus the system information i3status if available) +bar { + i3bar_command i3bar + status_command i3status + position bottom + +## please set your primary output first. Example: 'xrandr --output eDP1 --primary' +# tray_output primary +# tray_output eDP1 + + bindsym button4 nop + bindsym button5 nop +# font xft:URWGothic-Book 11 + strip_workspace_numbers yes + + colors { + background #222D31 + statusline #F9FAF9 + separator #454947 + +# border backgr. text + focused_workspace #F9FAF9 #16a085 #292F34 + active_workspace #595B5B #353836 #FDF6E3 + inactive_workspace #595B5B #222D31 #EEE8D5 + binding_mode #16a085 #2C2C2C #F9FAF9 + urgent_workspace #16a085 #FDF6E3 #E5201D + } +} + +# hide/unhide i3status bar +bindsym $mod+m bar mode toggle + +# Theme colors +# class border backgr. text indic. child_border + client.focused #556064 #556064 #80FFF9 #FDF6E3 + client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948 + client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948 + client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2 + client.placeholder #000000 #0c0c0c #ffffff #000000 + + client.background #2B2C2B + +############################# +### settings for i3-gaps: ### +############################# + +# Set inner/outer gaps +gaps inner 14 +gaps outer -2 + +# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size. +# gaps inner|outer current|all set|plus|minus +# gaps inner all set 10 +# gaps outer all plus 5 + +# Smart gaps (gaps used if only more than one container on the workspace) +smart_gaps on + +# Smart borders (draw borders around container only if it is not the only container on this workspace) +# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0) +smart_borders on + +# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces. +set $mode_gaps Gaps: (o) outer, (i) inner +set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) +set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) +bindsym $mod+Shift+g mode "$mode_gaps" + +mode "$mode_gaps" { + bindsym o mode "$mode_gaps_outer" + bindsym i mode "$mode_gaps_inner" + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_inner" { + bindsym plus gaps inner current plus 5 + bindsym minus gaps inner current minus 5 + bindsym 0 gaps inner current set 0 + + bindsym Shift+plus gaps inner all plus 5 + bindsym Shift+minus gaps inner all minus 5 + bindsym Shift+0 gaps inner all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_outer" { + bindsym plus gaps outer current plus 5 + bindsym minus gaps outer current minus 5 + bindsym 0 gaps outer current set 0 + + bindsym Shift+plus gaps outer all plus 5 + bindsym Shift+minus gaps outer all minus 5 + bindsym Shift+0 gaps outer all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} diff --git a/jupyter/jupyter_console_config.py b/jupyter/jupyter_console_config.py new file mode 100644 index 0000000..77bae4b --- /dev/null +++ b/jupyter/jupyter_console_config.py @@ -0,0 +1,330 @@ +# Configuration file for jupyter-console. + +#------------------------------------------------------------------------------ +# ConnectionFileMixin(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## Mixin for configurable classes that work with connection files + +## JSON file in which to store connection info [default: kernel-.json] +# +# This file will contain the IP, ports, and authentication key needed to connect +# clients to this kernel. By default, this file will be created in the security +# dir of the current profile, but can be specified by absolute path. +#c.ConnectionFileMixin.connection_file = '' + +## set the control (ROUTER) port [default: random] +#c.ConnectionFileMixin.control_port = 0 + +## set the heartbeat port [default: random] +#c.ConnectionFileMixin.hb_port = 0 + +## set the iopub (PUB) port [default: random] +#c.ConnectionFileMixin.iopub_port = 0 + +## Set the kernel's IP address [default localhost]. If the IP address is +# something other than localhost, then Consoles on other machines will be able +# to connect to the Kernel, so be careful! +#c.ConnectionFileMixin.ip = '' + +## set the shell (ROUTER) port [default: random] +#c.ConnectionFileMixin.shell_port = 0 + +## set the stdin (ROUTER) port [default: random] +#c.ConnectionFileMixin.stdin_port = 0 + +## +#c.ConnectionFileMixin.transport = 'tcp' + +#------------------------------------------------------------------------------ +# JupyterConsoleApp(ConnectionFileMixin) configuration +#------------------------------------------------------------------------------ + +## Set to display confirmation dialog on exit. You can always use 'exit' or +# 'quit', to force a direct exit without any confirmation. +#c.JupyterConsoleApp.confirm_exit = True + +## Connect to an already running kernel +#c.JupyterConsoleApp.existing = '' + +## The kernel manager class to use. +#c.JupyterConsoleApp.kernel_manager_class = 'jupyter_client.manager.KernelManager' + +## The name of the default kernel to start. +#c.JupyterConsoleApp.kernel_name = 'python' + +## Path to the ssh key to use for logging in to the ssh server. +#c.JupyterConsoleApp.sshkey = '' + +## The SSH server to use to connect to the kernel. +#c.JupyterConsoleApp.sshserver = '' + +#------------------------------------------------------------------------------ +# Application(SingletonConfigurable) configuration +#------------------------------------------------------------------------------ + +## This is an application. + +## The date format used by logging formatters for %(asctime)s +#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' + +## The Logging format template +#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' + +## Set the log level by value or name. +#c.Application.log_level = 30 + +#------------------------------------------------------------------------------ +# JupyterApp(Application) configuration +#------------------------------------------------------------------------------ + +## Base class for Jupyter applications + +## Answer yes to any prompts. +#c.JupyterApp.answer_yes = False + +## Full path of a config file. +#c.JupyterApp.config_file = '' + +## Specify a config file to load. +#c.JupyterApp.config_file_name = '' + +## Generate default config file. +#c.JupyterApp.generate_config = False + +#------------------------------------------------------------------------------ +# ZMQTerminalIPythonApp(JupyterApp,JupyterConsoleApp) configuration +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# ZMQTerminalInteractiveShell(SingletonConfigurable) configuration +#------------------------------------------------------------------------------ + +## Text to display before the first prompt. Will be formatted with variables +# {version} and {kernel_banner}. +#c.ZMQTerminalInteractiveShell.banner = 'Jupyter console {version}\n\n{kernel_banner}' + +## Callable object called via 'callable' image handler with one argument, `data`, +# which is `msg["content"]["data"]` where `msg` is the message from iopub +# channel. For example, you can find base64 encoded PNG data as +# `data['image/png']`. If your function can't handle the data supplied, it +# should return `False` to indicate this. +#c.ZMQTerminalInteractiveShell.callable_image_handler = None + +## Shortcut style to use at the prompt. 'vi' or 'emacs'. +#c.ZMQTerminalInteractiveShell.editing_mode = 'emacs' + +## Highlight matching brackets. +#c.ZMQTerminalInteractiveShell.highlight_matching_brackets = True + +## The name of a Pygments style to use for syntax highlighting +#c.ZMQTerminalInteractiveShell.highlighting_style = '' + +## Override highlighting format for specific tokens +#c.ZMQTerminalInteractiveShell.highlighting_style_overrides = {} + +## How many history items to load into memory +#c.ZMQTerminalInteractiveShell.history_load_length = 1000 + +## Handler for image type output. This is useful, for example, when connecting +# to the kernel in which pylab inline backend is activated. There are four +# handlers defined. 'PIL': Use Python Imaging Library to popup image; 'stream': +# Use an external program to show the image. Image will be fed into the STDIN +# of the program. You will need to configure `stream_image_handler`; +# 'tempfile': Use an external program to show the image. Image will be saved in +# a temporally file and the program is called with the temporally file. You +# will need to configure `tempfile_image_handler`; 'callable': You can set any +# Python callable which is called with the image data. You will need to +# configure `callable_image_handler`. +#c.ZMQTerminalInteractiveShell.image_handler = 'PIL' + +## Whether to include output from clients other than this one sharing the same +# kernel. +# +# Outputs are not displayed until enter is pressed. +c.ZMQTerminalInteractiveShell.include_other_output = True + +## Timeout (in seconds) for giving up on a kernel's is_complete response. +# +# If the kernel does not respond at any point within this time, the kernel will +# no longer be asked if code is complete, and the console will default to the +# built-in is_complete test. +#c.ZMQTerminalInteractiveShell.kernel_is_complete_timeout = 1 + +## Timeout for giving up on a kernel (in seconds). +# +# On first connect and restart, the console tests whether the kernel is running +# and responsive by sending kernel_info_requests. This sets the timeout in +# seconds for how long the kernel can take before being presumed dead. +#c.ZMQTerminalInteractiveShell.kernel_timeout = 60 + +## Preferred object representation MIME type in order. First matched MIME type +# will be used. +#c.ZMQTerminalInteractiveShell.mime_preference = ['image/png', 'image/jpeg', 'image/svg+xml'] + +## Prefix to add to outputs coming from clients other than this one. +# +# Only relevant if include_other_output is True. +#c.ZMQTerminalInteractiveShell.other_output_prefix = '[remote] ' + +## Use simple fallback prompt. Features may be limited. +#c.ZMQTerminalInteractiveShell.simple_prompt = False + +## Command to invoke an image viewer program when you are using 'stream' image +# handler. This option is a list of string where the first element is the +# command itself and reminders are the options for the command. Raw image data +# is given as STDIN to the program. +#c.ZMQTerminalInteractiveShell.stream_image_handler = [] + +## Command to invoke an image viewer program when you are using 'tempfile' image +# handler. This option is a list of string where the first element is the +# command itself and reminders are the options for the command. You can use +# {file} and {format} in the string to represent the location of the generated +# image file and image format. +#c.ZMQTerminalInteractiveShell.tempfile_image_handler = [] + +## Use 24bit colors instead of 256 colors in prompt highlighting. If your +# terminal supports true color, the following command should print 'TRUECOLOR' +# in orange: printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n" +#c.ZMQTerminalInteractiveShell.true_color = False + +## Whether to use the kernel's is_complete message handling. If False, then the +# frontend will use its own is_complete handler. +#c.ZMQTerminalInteractiveShell.use_kernel_is_complete = True + +#------------------------------------------------------------------------------ +# KernelManager(ConnectionFileMixin) configuration +#------------------------------------------------------------------------------ + +## Manages a single kernel in a subprocess on this host. +# +# This version starts kernels with Popen. + +## Should we autorestart the kernel if it dies. +#c.KernelManager.autorestart = True + +## DEPRECATED: Use kernel_name instead. +# +# The Popen Command to launch the kernel. Override this if you have a custom +# kernel. If kernel_cmd is specified in a configuration file, Jupyter does not +# pass any arguments to the kernel, because it cannot make any assumptions about +# the arguments that the kernel understands. In particular, this means that the +# kernel does not receive the option --debug if it given on the Jupyter command +# line. +#c.KernelManager.kernel_cmd = [] + +## Time to wait for a kernel to terminate before killing it, in seconds. +#c.KernelManager.shutdown_wait_time = 5.0 + +#------------------------------------------------------------------------------ +# KernelRestarter(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## Monitor and autorestart a kernel. + +## Whether to include every poll event in debugging output. +# +# Has to be set explicitly, because there will be *a lot* of output. +#c.KernelRestarter.debug = False + +## Whether to choose new random ports when restarting before the kernel is alive. +#c.KernelRestarter.random_ports_until_alive = True + +## The number of consecutive autorestarts before the kernel is presumed dead. +#c.KernelRestarter.restart_limit = 5 + +## Kernel heartbeat interval in seconds. +#c.KernelRestarter.time_to_dead = 3.0 + +#------------------------------------------------------------------------------ +# Session(Configurable) configuration +#------------------------------------------------------------------------------ + +## Object for handling serialization and sending of messages. +# +# The Session object handles building messages and sending them with ZMQ sockets +# or ZMQStream objects. Objects can communicate with each other over the +# network via Session objects, and only need to work with the dict-based IPython +# message spec. The Session will handle serialization/deserialization, security, +# and metadata. +# +# Sessions support configurable serialization via packer/unpacker traits, and +# signing with HMAC digests via the key/keyfile traits. +# +# Parameters ---------- +# +# debug : bool +# whether to trigger extra debugging statements +# packer/unpacker : str : 'json', 'pickle' or import_string +# importstrings for methods to serialize message parts. If just +# 'json' or 'pickle', predefined JSON and pickle packers will be used. +# Otherwise, the entire importstring must be used. +# +# The functions must accept at least valid JSON input, and output *bytes*. +# +# For example, to use msgpack: +# packer = 'msgpack.packb', unpacker='msgpack.unpackb' +# pack/unpack : callables +# You can also set the pack/unpack callables for serialization directly. +# session : bytes +# the ID of this Session object. The default is to generate a new UUID. +# username : unicode +# username added to message headers. The default is to ask the OS. +# key : bytes +# The key used to initialize an HMAC signature. If unset, messages +# will not be signed or checked. +# keyfile : filepath +# The file containing a key. If this is set, `key` will be initialized +# to the contents of the file. + +## Threshold (in bytes) beyond which an object's buffer should be extracted to +# avoid pickling. +#c.Session.buffer_threshold = 1024 + +## Whether to check PID to protect against calls after fork. +# +# This check can be disabled if fork-safety is handled elsewhere. +#c.Session.check_pid = True + +## Threshold (in bytes) beyond which a buffer should be sent without copying. +#c.Session.copy_threshold = 65536 + +## Debug output in the Session +#c.Session.debug = False + +## The maximum number of digests to remember. +# +# The digest history will be culled when it exceeds this value. +#c.Session.digest_history_size = 65536 + +## The maximum number of items for a container to be introspected for custom +# serialization. Containers larger than this are pickled outright. +#c.Session.item_threshold = 64 + +## execution key, for signing messages. +#c.Session.key = b'' + +## path to file containing execution key. +#c.Session.keyfile = '' + +## Metadata dictionary, which serves as the default top-level metadata dict for +# each message. +#c.Session.metadata = {} + +## The name of the packer for serializing messages. Should be one of 'json', +# 'pickle', or an import name for a custom callable serializer. +#c.Session.packer = 'json' + +## The UUID identifying this session. +#c.Session.session = '' + +## The digest scheme used to construct the message signatures. Must have the form +# 'hmac-HASH'. +#c.Session.signature_scheme = 'hmac-sha256' + +## The name of the unpacker for unserializing messages. Only used with custom +# functions for `packer`. +#c.Session.unpacker = 'json' + +## Username for the Session. Default is your system username. +#c.Session.username = 'hjalmarlucius' diff --git a/jupyter/jupyter_notebook_config.py b/jupyter/jupyter_notebook_config.py new file mode 100644 index 0000000..cb49815 --- /dev/null +++ b/jupyter/jupyter_notebook_config.py @@ -0,0 +1,804 @@ +# Configuration file for jupyter-notebook. + +#------------------------------------------------------------------------------ +# Application(SingletonConfigurable) configuration +#------------------------------------------------------------------------------ + +## This is an application. + +## The date format used by logging formatters for %(asctime)s +#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' + +## The Logging format template +#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' + +## Set the log level by value or name. +#c.Application.log_level = 30 + +#------------------------------------------------------------------------------ +# JupyterApp(Application) configuration +#------------------------------------------------------------------------------ + +## Base class for Jupyter applications + +## Answer yes to any prompts. +#c.JupyterApp.answer_yes = False + +## Full path of a config file. +#c.JupyterApp.config_file = '' + +## Specify a config file to load. +#c.JupyterApp.config_file_name = '' + +## Generate default config file. +#c.JupyterApp.generate_config = False + +#------------------------------------------------------------------------------ +# NotebookApp(JupyterApp) configuration +#------------------------------------------------------------------------------ + +## Set the Access-Control-Allow-Credentials: true header +#c.NotebookApp.allow_credentials = False + +## Set the Access-Control-Allow-Origin header +# +# Use '*' to allow any origin to access your server. +# +# Takes precedence over allow_origin_pat. +#c.NotebookApp.allow_origin = '' + +## Use a regular expression for the Access-Control-Allow-Origin header +# +# Requests from an origin matching the expression will get replies with: +# +# Access-Control-Allow-Origin: origin +# +# where `origin` is the origin of the request. +# +# Ignored if allow_origin is set. +#c.NotebookApp.allow_origin_pat = '' + +## Allow password to be changed at login for the notebook server. +# +# While loggin in with a token, the notebook server UI will give the opportunity +# to the user to enter a new password at the same time that will replace the +# token login mechanism. +# +# This can be set to false to prevent changing password from the UI/API. +#c.NotebookApp.allow_password_change = True + +## Allow requests where the Host header doesn't point to a local server +# +# By default, requests get a 403 forbidden response if the 'Host' header shows +# that the browser thinks it's on a non-local domain. Setting this option to +# True disables this check. +# +# This protects against 'DNS rebinding' attacks, where a remote web server +# serves you a page and then changes its DNS to send later requests to a local +# IP, bypassing same-origin checks. +# +# Local IP addresses (such as 127.0.0.1 and ::1) are allowed as local, along +# with hostnames configured in local_hostnames. +#c.NotebookApp.allow_remote_access = False + +## Whether to allow the user to run the notebook as root. +#c.NotebookApp.allow_root = False + +## DEPRECATED use base_url +#c.NotebookApp.base_project_url = '/' + +## The base URL for the notebook server. +# +# Leading and trailing slashes can be omitted, and will automatically be added. +#c.NotebookApp.base_url = '/' + +## Specify what command to use to invoke a web browser when opening the notebook. +# If not specified, the default browser will be determined by the `webbrowser` +# standard library module, which allows setting of the BROWSER environment +# variable to override it. +#c.NotebookApp.browser = '' + +## The full path to an SSL/TLS certificate file. +c.NotebookApp.certfile = '/home/hjalmarlucius/.jupyter/mycert.pem' + +## The full path to a certificate authority certificate for SSL/TLS client +# authentication. +#c.NotebookApp.client_ca = '' + +## The config manager class to use +#c.NotebookApp.config_manager_class = 'notebook.services.config.manager.ConfigManager' + +## The notebook manager class to use. +#c.NotebookApp.contents_manager_class = 'notebook.services.contents.largefilemanager.LargeFileManager' + +## Extra keyword arguments to pass to `set_secure_cookie`. See tornado's +# set_secure_cookie docs for details. +#c.NotebookApp.cookie_options = {} + +## The random bytes used to secure cookies. By default this is a new random +# number every time you start the Notebook. Set it to a value in a config file +# to enable logins to persist across server sessions. +# +# Note: Cookie secrets should be kept private, do not share config files with +# cookie_secret stored in plaintext (you can read the value from a file). +#c.NotebookApp.cookie_secret = b'' + +## The file where the cookie secret is stored. +#c.NotebookApp.cookie_secret_file = '' + +## Override URL shown to users. +# +# Replace actual URL, including protocol, address, port and base URL, with the +# given value when displaying URL to the users. Do not change the actual +# connection URL. If authentication token is enabled, the token is added to the +# custom URL automatically. +# +# This option is intended to be used when the URL to display to the user cannot +# be determined reliably by the Jupyter notebook server (proxified or +# containerized setups for example). +#c.NotebookApp.custom_display_url = '' + +## The default URL to redirect to from `/` +#c.NotebookApp.default_url = '/tree' + +## Disable cross-site-request-forgery protection +# +# Jupyter notebook 4.3.1 introduces protection from cross-site request +# forgeries, requiring API requests to either: +# +# - originate from pages served by this server (validated with XSRF cookie and +# token), or - authenticate with a token +# +# Some anonymous compute resources still desire the ability to run code, +# completely without authentication. These services can disable all +# authentication and security checks, with the full knowledge of what that +# implies. +#c.NotebookApp.disable_check_xsrf = False + +## Whether to enable MathJax for typesetting math/TeX +# +# MathJax is the javascript library Jupyter uses to render math/LaTeX. It is +# very large, so you may want to disable it if you have a slow internet +# connection, or for offline use of the notebook. +# +# When disabled, equations etc. will appear as their untransformed TeX source. +#c.NotebookApp.enable_mathjax = True + +## extra paths to look for Javascript notebook extensions +#c.NotebookApp.extra_nbextensions_path = [] + +## handlers that should be loaded at higher priority than the default services +#c.NotebookApp.extra_services = [] + +## Extra paths to search for serving static files. +# +# This allows adding javascript/css to be available from the notebook server +# machine, or overriding individual files in the IPython +#c.NotebookApp.extra_static_paths = [] + +## Extra paths to search for serving jinja templates. +# +# Can be used to override templates from notebook.templates. +#c.NotebookApp.extra_template_paths = [] + +## +#c.NotebookApp.file_to_run = '' + +## Extra keyword arguments to pass to `get_secure_cookie`. See tornado's +# get_secure_cookie docs for details. +#c.NotebookApp.get_secure_cookie_kwargs = {} + +## Deprecated: Use minified JS file or not, mainly use during dev to avoid JS +# recompilation +#c.NotebookApp.ignore_minified_js = False + +## (bytes/sec) Maximum rate at which stream output can be sent on iopub before +# they are limited. +#c.NotebookApp.iopub_data_rate_limit = 1000000 + +## (msgs/sec) Maximum rate at which messages can be sent on iopub before they are +# limited. +#c.NotebookApp.iopub_msg_rate_limit = 1000 + +## The IP address the notebook server will listen on. +c.NotebookApp.ip = '0.0.0.0' + +## Supply extra arguments that will be passed to Jinja environment. +#c.NotebookApp.jinja_environment_options = {} + +## Extra variables to supply to jinja templates when rendering. +#c.NotebookApp.jinja_template_vars = {} + +## The kernel manager class to use. +#c.NotebookApp.kernel_manager_class = 'notebook.services.kernels.kernelmanager.MappingKernelManager' + +## The kernel spec manager class to use. Should be a subclass of +# `jupyter_client.kernelspec.KernelSpecManager`. +# +# The Api of KernelSpecManager is provisional and might change without warning +# between this version of Jupyter and the next stable one. +#c.NotebookApp.kernel_spec_manager_class = 'jupyter_client.kernelspec.KernelSpecManager' + +## The full path to a private key file for usage with SSL/TLS. +c.NotebookApp.keyfile = '/home/hjalmarlucius/.jupyter/mykey.key' + +## Hostnames to allow as local when allow_remote_access is False. +# +# Local IP addresses (such as 127.0.0.1 and ::1) are automatically accepted as +# local as well. +#c.NotebookApp.local_hostnames = ['localhost'] + +## The login handler class to use. +#c.NotebookApp.login_handler_class = 'notebook.auth.login.LoginHandler' + +## The logout handler class to use. +#c.NotebookApp.logout_handler_class = 'notebook.auth.logout.LogoutHandler' + +## The MathJax.js configuration file that is to be used. +#c.NotebookApp.mathjax_config = 'TeX-AMS-MML_HTMLorMML-full,Safe' + +## A custom url for MathJax.js. Should be in the form of a case-sensitive url to +# MathJax, for example: /static/components/MathJax/MathJax.js +#c.NotebookApp.mathjax_url = '' + +## Sets the maximum allowed size of the client request body, specified in the +# Content-Length request header field. If the size in a request exceeds the +# configured value, a malformed HTTP message is returned to the client. +# +# Note: max_body_size is applied even in streaming mode. +#c.NotebookApp.max_body_size = 536870912 + +## Gets or sets the maximum amount of memory, in bytes, that is allocated for +# use by the buffer manager. +#c.NotebookApp.max_buffer_size = 536870912 + +## Dict of Python modules to load as notebook server extensions.Entry values can +# be used to enable and disable the loading ofthe extensions. The extensions +# will be loaded in alphabetical order. +#c.NotebookApp.nbserver_extensions = {} + +## The directory to use for notebooks and kernels. +c.NotebookApp.notebook_dir = '.' + +## Whether to open in a browser after starting. The specific browser used is +# platform dependent and determined by the python standard library `webbrowser` +# module, unless it is overridden using the --browser (NotebookApp.browser) +# configuration option. +#c.NotebookApp.open_browser = True + +## Hashed password to use for web authentication. +# +# To generate, type in a python/IPython shell: +# +# from notebook.auth import passwd; passwd() +# +# The string should be of the form type:salt:hashed-password. +# c.NotebookApp.password = 'sha1:cb8c63a72b29:8250d2525b1b77e7dafb629e94b5c3d85c13dfbd' +c.NotebookApp.password = 'sha1:3a7cdace2ed4:b56b201ceefc101aadabf5400ed791dec5408fc0' + +## Forces users to use a password for the Notebook server. This is useful in a +# multi user environment, for instance when everybody in the LAN can access each +# other's machine through ssh. +# +# In such a case, server the notebook server on localhost is not secure since +# any user can connect to the notebook server via ssh. +c.NotebookApp.password_required = True + +## The port the notebook server will listen on. +c.NotebookApp.port = 9999 + +## The number of additional ports to try if the specified port is not available. +#c.NotebookApp.port_retries = 50 + +## DISABLED: use %pylab or %matplotlib in the notebook to enable matplotlib. +#c.NotebookApp.pylab = 'disabled' + +## If True, display a button in the dashboard to quit (shutdown the notebook +# server). +#c.NotebookApp.quit_button = True + +## (sec) Time window used to check the message and data rate limits. +#c.NotebookApp.rate_limit_window = 3 + +## Reraise exceptions encountered loading server extensions? +#c.NotebookApp.reraise_server_extension_failures = False + +## DEPRECATED use the nbserver_extensions dict instead +#c.NotebookApp.server_extensions = [] + +## The session manager class to use. +#c.NotebookApp.session_manager_class = 'notebook.services.sessions.sessionmanager.SessionManager' + +## Shut down the server after N seconds with no kernels or terminals running and +# no activity. This can be used together with culling idle kernels +# (MappingKernelManager.cull_idle_timeout) to shutdown the notebook server when +# it's not in use. This is not precisely timed: it may shut down up to a minute +# later. 0 (the default) disables this automatic shutdown. +#c.NotebookApp.shutdown_no_activity_timeout = 0 + +## Supply SSL options for the tornado HTTPServer. See the tornado docs for +# details. +#c.NotebookApp.ssl_options = {} + +## Supply overrides for terminado. Currently only supports "shell_command". +#c.NotebookApp.terminado_settings = {} + +## Set to False to disable terminals. +# +# This does *not* make the notebook server more secure by itself. Anything the +# user can in a terminal, they can also do in a notebook. +# +# Terminals may also be automatically disabled if the terminado package is not +# available. +#c.NotebookApp.terminals_enabled = True + +## Token used for authenticating first-time connections to the server. +# +# When no password is enabled, the default is to generate a new, random token. +# +# Setting to an empty string disables authentication altogether, which is NOT +# RECOMMENDED. +#c.NotebookApp.token = '' + +## Supply overrides for the tornado.web.Application that the Jupyter notebook +# uses. +#c.NotebookApp.tornado_settings = {} + +## Whether to trust or not X-Scheme/X-Forwarded-Proto and X-Real-Ip/X-Forwarded- +# For headerssent by the upstream reverse proxy. Necessary if the proxy handles +# SSL +#c.NotebookApp.trust_xheaders = False + +## DEPRECATED, use tornado_settings +#c.NotebookApp.webapp_settings = {} + +## Specify Where to open the notebook on startup. This is the `new` argument +# passed to the standard library method `webbrowser.open`. The behaviour is not +# guaranteed, but depends on browser support. Valid values are: +# +# - 2 opens a new tab, +# - 1 opens a new window, +# - 0 opens in an existing window. +# +# See the `webbrowser.open` documentation for details. +#c.NotebookApp.webbrowser_open_new = 2 + +## Set the tornado compression options for websocket connections. +# +# This value will be returned from +# :meth:`WebSocketHandler.get_compression_options`. None (default) will disable +# compression. A dict (even an empty one) will enable compression. +# +# See the tornado docs for WebSocketHandler.get_compression_options for details. +#c.NotebookApp.websocket_compression_options = None + +## The base URL for websockets, if it differs from the HTTP server (hint: it +# almost certainly doesn't). +# +# Should be in the form of an HTTP origin: ws[s]://hostname[:port] +#c.NotebookApp.websocket_url = '' + +#------------------------------------------------------------------------------ +# LabApp(NotebookApp) configuration +#------------------------------------------------------------------------------ + +## The app directory to launch JupyterLab from. +#c.LabApp.app_dir = '/home/hjalmarlucius/anaconda3/share/jupyter/lab' + +## Whether to start the app in core mode. In this mode, JupyterLab will run using +# the JavaScript assets that are within the installed JupyterLab Python package. +# In core mode, third party extensions are disabled. The `--dev-mode` flag is an +# alias to this to be used when the Python package itself is installed in +# development mode (`pip install -e .`). +#c.LabApp.core_mode = False + +## The default URL to redirect to from `/` +#c.LabApp.default_url = '/lab' + +## Whether to start the app in dev mode. Uses the unpublished local JavaScript +# packages in the `dev_mode` folder. In this case JupyterLab will show a red +# stripe at the top of the page. It can only be used if JupyterLab is installed +# as `pip install -e .`. +#c.LabApp.dev_mode = False + +## The override url for static lab assets, typically a CDN. +#c.LabApp.override_static_url = '' + +## The override url for static lab theme assets, typically a CDN. +#c.LabApp.override_theme_url = '' + +## The directory for user settings. +#c.LabApp.user_settings_dir = '/home/hjalmarlucius/.jupyter/lab/user-settings' + +## Whether to serve the app in watch mode +#c.LabApp.watch = False + +## The directory for workspaces +#c.LabApp.workspaces_dir = '/home/hjalmarlucius/.jupyter/lab/workspaces' + +#------------------------------------------------------------------------------ +# ConnectionFileMixin(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## Mixin for configurable classes that work with connection files + +## JSON file in which to store connection info [default: kernel-.json] +# +# This file will contain the IP, ports, and authentication key needed to connect +# clients to this kernel. By default, this file will be created in the security +# dir of the current profile, but can be specified by absolute path. +#c.ConnectionFileMixin.connection_file = '' + +## set the control (ROUTER) port [default: random] +#c.ConnectionFileMixin.control_port = 0 + +## set the heartbeat port [default: random] +#c.ConnectionFileMixin.hb_port = 0 + +## set the iopub (PUB) port [default: random] +#c.ConnectionFileMixin.iopub_port = 0 + +## Set the kernel's IP address [default localhost]. If the IP address is +# something other than localhost, then Consoles on other machines will be able +# to connect to the Kernel, so be careful! +#c.ConnectionFileMixin.ip = '' + +## set the shell (ROUTER) port [default: random] +#c.ConnectionFileMixin.shell_port = 0 + +## set the stdin (ROUTER) port [default: random] +#c.ConnectionFileMixin.stdin_port = 0 + +## +#c.ConnectionFileMixin.transport = 'tcp' + +#------------------------------------------------------------------------------ +# KernelManager(ConnectionFileMixin) configuration +#------------------------------------------------------------------------------ + +## Manages a single kernel in a subprocess on this host. +# +# This version starts kernels with Popen. + +## Should we autorestart the kernel if it dies. +#c.KernelManager.autorestart = True + +## DEPRECATED: Use kernel_name instead. +# +# The Popen Command to launch the kernel. Override this if you have a custom +# kernel. If kernel_cmd is specified in a configuration file, Jupyter does not +# pass any arguments to the kernel, because it cannot make any assumptions about +# the arguments that the kernel understands. In particular, this means that the +# kernel does not receive the option --debug if it given on the Jupyter command +# line. +#c.KernelManager.kernel_cmd = [] + +## Time to wait for a kernel to terminate before killing it, in seconds. +#c.KernelManager.shutdown_wait_time = 5.0 + +#------------------------------------------------------------------------------ +# Session(Configurable) configuration +#------------------------------------------------------------------------------ + +## Object for handling serialization and sending of messages. +# +# The Session object handles building messages and sending them with ZMQ sockets +# or ZMQStream objects. Objects can communicate with each other over the +# network via Session objects, and only need to work with the dict-based IPython +# message spec. The Session will handle serialization/deserialization, security, +# and metadata. +# +# Sessions support configurable serialization via packer/unpacker traits, and +# signing with HMAC digests via the key/keyfile traits. +# +# Parameters ---------- +# +# debug : bool +# whether to trigger extra debugging statements +# packer/unpacker : str : 'json', 'pickle' or import_string +# importstrings for methods to serialize message parts. If just +# 'json' or 'pickle', predefined JSON and pickle packers will be used. +# Otherwise, the entire importstring must be used. +# +# The functions must accept at least valid JSON input, and output *bytes*. +# +# For example, to use msgpack: +# packer = 'msgpack.packb', unpacker='msgpack.unpackb' +# pack/unpack : callables +# You can also set the pack/unpack callables for serialization directly. +# session : bytes +# the ID of this Session object. The default is to generate a new UUID. +# username : unicode +# username added to message headers. The default is to ask the OS. +# key : bytes +# The key used to initialize an HMAC signature. If unset, messages +# will not be signed or checked. +# keyfile : filepath +# The file containing a key. If this is set, `key` will be initialized +# to the contents of the file. + +## Threshold (in bytes) beyond which an object's buffer should be extracted to +# avoid pickling. +#c.Session.buffer_threshold = 1024 + +## Whether to check PID to protect against calls after fork. +# +# This check can be disabled if fork-safety is handled elsewhere. +#c.Session.check_pid = True + +## Threshold (in bytes) beyond which a buffer should be sent without copying. +#c.Session.copy_threshold = 65536 + +## Debug output in the Session +#c.Session.debug = False + +## The maximum number of digests to remember. +# +# The digest history will be culled when it exceeds this value. +#c.Session.digest_history_size = 65536 + +## The maximum number of items for a container to be introspected for custom +# serialization. Containers larger than this are pickled outright. +#c.Session.item_threshold = 64 + +## execution key, for signing messages. +#c.Session.key = b'' + +## path to file containing execution key. +#c.Session.keyfile = '' + +## Metadata dictionary, which serves as the default top-level metadata dict for +# each message. +#c.Session.metadata = {} + +## The name of the packer for serializing messages. Should be one of 'json', +# 'pickle', or an import name for a custom callable serializer. +#c.Session.packer = 'json' + +## The UUID identifying this session. +#c.Session.session = '' + +## The digest scheme used to construct the message signatures. Must have the form +# 'hmac-HASH'. +#c.Session.signature_scheme = 'hmac-sha256' + +## The name of the unpacker for unserializing messages. Only used with custom +# functions for `packer`. +#c.Session.unpacker = 'json' + +## Username for the Session. Default is your system username. +#c.Session.username = 'hjalmarlucius' + +#------------------------------------------------------------------------------ +# MultiKernelManager(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## A class for managing multiple kernels. + +## The name of the default kernel to start +#c.MultiKernelManager.default_kernel_name = 'python3' + +## The kernel manager class. This is configurable to allow subclassing of the +# KernelManager for customized behavior. +#c.MultiKernelManager.kernel_manager_class = 'jupyter_client.ioloop.IOLoopKernelManager' + +#------------------------------------------------------------------------------ +# MappingKernelManager(MultiKernelManager) configuration +#------------------------------------------------------------------------------ + +## A KernelManager that handles notebook mapping and HTTP error handling + +## Whether messages from kernels whose frontends have disconnected should be +# buffered in-memory. +# +# When True (default), messages are buffered and replayed on reconnect, avoiding +# lost messages due to interrupted connectivity. +# +# Disable if long-running kernels will produce too much output while no +# frontends are connected. +#c.MappingKernelManager.buffer_offline_messages = True + +## Whether to consider culling kernels which are busy. Only effective if +# cull_idle_timeout > 0. +#c.MappingKernelManager.cull_busy = False + +## Whether to consider culling kernels which have one or more connections. Only +# effective if cull_idle_timeout > 0. +#c.MappingKernelManager.cull_connected = False + +## Timeout (in seconds) after which a kernel is considered idle and ready to be +# culled. Values of 0 or lower disable culling. Very short timeouts may result +# in kernels being culled for users with poor network connections. +#c.MappingKernelManager.cull_idle_timeout = 0 + +## The interval (in seconds) on which to check for idle kernels exceeding the +# cull timeout value. +#c.MappingKernelManager.cull_interval = 300 + +## Timeout for giving up on a kernel (in seconds). +# +# On starting and restarting kernels, we check whether the kernel is running and +# responsive by sending kernel_info_requests. This sets the timeout in seconds +# for how long the kernel can take before being presumed dead. This affects the +# MappingKernelManager (which handles kernel restarts) and the +# ZMQChannelsHandler (which handles the startup). +#c.MappingKernelManager.kernel_info_timeout = 60 + +## +#c.MappingKernelManager.root_dir = '' + +#------------------------------------------------------------------------------ +# ContentsManager(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## Base class for serving files and directories. +# +# This serves any text or binary file, as well as directories, with special +# handling for JSON notebook documents. +# +# Most APIs take a path argument, which is always an API-style unicode path, and +# always refers to a directory. +# +# - unicode, not url-escaped +# - '/'-separated +# - leading and trailing '/' will be stripped +# - if unspecified, path defaults to '', +# indicating the root path. + +## Allow access to hidden files +#c.ContentsManager.allow_hidden = False + +## +#c.ContentsManager.checkpoints = None + +## +#c.ContentsManager.checkpoints_class = 'notebook.services.contents.checkpoints.Checkpoints' + +## +#c.ContentsManager.checkpoints_kwargs = {} + +## handler class to use when serving raw file requests. +# +# Default is a fallback that talks to the ContentsManager API, which may be +# inefficient, especially for large files. +# +# Local files-based ContentsManagers can use a StaticFileHandler subclass, which +# will be much more efficient. +# +# Access to these files should be Authenticated. +#c.ContentsManager.files_handler_class = 'notebook.files.handlers.FilesHandler' + +## Extra parameters to pass to files_handler_class. +# +# For example, StaticFileHandlers generally expect a `path` argument specifying +# the root directory from which to serve files. +#c.ContentsManager.files_handler_params = {} + +## Glob patterns to hide in file and directory listings. +#c.ContentsManager.hide_globs = ['__pycache__', '*.pyc', '*.pyo', '.DS_Store', '*.so', '*.dylib', '*~'] + +## Python callable or importstring thereof +# +# To be called on a contents model prior to save. +# +# This can be used to process the structure, such as removing notebook outputs +# or other side effects that should not be saved. +# +# It will be called as (all arguments passed by keyword):: +# +# hook(path=path, model=model, contents_manager=self) +# +# - model: the model to be saved. Includes file contents. +# Modifying this dict will affect the file that is stored. +# - path: the API path of the save destination +# - contents_manager: this ContentsManager instance +#c.ContentsManager.pre_save_hook = None + +## +#c.ContentsManager.root_dir = '/' + +## The base name used when creating untitled directories. +#c.ContentsManager.untitled_directory = 'Untitled Folder' + +## The base name used when creating untitled files. +#c.ContentsManager.untitled_file = 'untitled' + +## The base name used when creating untitled notebooks. +#c.ContentsManager.untitled_notebook = 'Untitled' + +#------------------------------------------------------------------------------ +# FileManagerMixin(Configurable) configuration +#------------------------------------------------------------------------------ + +## Mixin for ContentsAPI classes that interact with the filesystem. +# +# Provides facilities for reading, writing, and copying both notebooks and +# generic files. +# +# Shared by FileContentsManager and FileCheckpoints. +# +# Note ---- Classes using this mixin must provide the following attributes: +# +# root_dir : unicode +# A directory against against which API-style paths are to be resolved. +# +# log : logging.Logger + +## By default notebooks are saved on disk on a temporary file and then if +# succefully written, it replaces the old ones. This procedure, namely +# 'atomic_writing', causes some bugs on file system whitout operation order +# enforcement (like some networked fs). If set to False, the new notebook is +# written directly on the old one which could fail (eg: full filesystem or quota +# ) +#c.FileManagerMixin.use_atomic_writing = True + +#------------------------------------------------------------------------------ +# FileContentsManager(FileManagerMixin,ContentsManager) configuration +#------------------------------------------------------------------------------ + +## If True (default), deleting files will send them to the platform's +# trash/recycle bin, where they can be recovered. If False, deleting files +# really deletes them. +#c.FileContentsManager.delete_to_trash = True + +## Python callable or importstring thereof +# +# to be called on the path of a file just saved. +# +# This can be used to process the file on disk, such as converting the notebook +# to a script or HTML via nbconvert. +# +# It will be called as (all arguments passed by keyword):: +# +# hook(os_path=os_path, model=model, contents_manager=instance) +# +# - path: the filesystem path to the file just written - model: the model +# representing the file - contents_manager: this ContentsManager instance +#c.FileContentsManager.post_save_hook = None + +## +#c.FileContentsManager.root_dir = '' + +## DEPRECATED, use post_save_hook. Will be removed in Notebook 5.0 +#c.FileContentsManager.save_script = False + +#------------------------------------------------------------------------------ +# NotebookNotary(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## A class for computing and verifying notebook signatures. + +## The hashing algorithm used to sign notebooks. +#c.NotebookNotary.algorithm = 'sha256' + +## The sqlite file in which to store notebook signatures. By default, this will +# be in your Jupyter data directory. You can set it to ':memory:' to disable +# sqlite writing to the filesystem. +#c.NotebookNotary.db_file = '' + +## The secret key with which notebooks are signed. +#c.NotebookNotary.secret = b'' + +## The file where the secret key is stored. +#c.NotebookNotary.secret_file = '' + +## A callable returning the storage backend for notebook signatures. The default +# uses an SQLite database. +#c.NotebookNotary.store_factory = traitlets.Undefined + +#------------------------------------------------------------------------------ +# KernelSpecManager(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## If there is no Python kernelspec registered and the IPython kernel is +# available, ensure it is added to the spec list. +#c.KernelSpecManager.ensure_native_kernel = True + +## The kernel spec class. This is configurable to allow subclassing of the +# KernelSpecManager for customized behavior. +#c.KernelSpecManager.kernel_spec_class = 'jupyter_client.kernelspec.KernelSpec' + +## Whitelist of allowed kernel names. +# +# By default, all installed kernels are allowed. +#c.KernelSpecManager.whitelist = set() diff --git a/jupyter/jupyter_qtconsole_config.py b/jupyter/jupyter_qtconsole_config.py new file mode 100644 index 0000000..cdc0170 --- /dev/null +++ b/jupyter/jupyter_qtconsole_config.py @@ -0,0 +1,420 @@ +# Configuration file for jupyter-qtconsole. + +#------------------------------------------------------------------------------ +# ConnectionFileMixin(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## Mixin for configurable classes that work with connection files + +## JSON file in which to store connection info [default: kernel-.json] +# +# This file will contain the IP, ports, and authentication key needed to connect +# clients to this kernel. By default, this file will be created in the security +# dir of the current profile, but can be specified by absolute path. +#c.ConnectionFileMixin.connection_file = '' + +## set the control (ROUTER) port [default: random] +#c.ConnectionFileMixin.control_port = 0 + +## set the heartbeat port [default: random] +#c.ConnectionFileMixin.hb_port = 0 + +## set the iopub (PUB) port [default: random] +#c.ConnectionFileMixin.iopub_port = 0 + +## Set the kernel's IP address [default localhost]. If the IP address is +# something other than localhost, then Consoles on other machines will be able +# to connect to the Kernel, so be careful! +#c.ConnectionFileMixin.ip = '' + +## set the shell (ROUTER) port [default: random] +#c.ConnectionFileMixin.shell_port = 0 + +## set the stdin (ROUTER) port [default: random] +#c.ConnectionFileMixin.stdin_port = 0 + +## +#c.ConnectionFileMixin.transport = 'tcp' + +#------------------------------------------------------------------------------ +# JupyterConsoleApp(ConnectionFileMixin) configuration +#------------------------------------------------------------------------------ + +## Set to display confirmation dialog on exit. You can always use 'exit' or +# 'quit', to force a direct exit without any confirmation. +#c.JupyterConsoleApp.confirm_exit = True + +## Connect to an already running kernel +#c.JupyterConsoleApp.existing = '' + +## The kernel manager class to use. +#c.JupyterConsoleApp.kernel_manager_class = 'jupyter_client.manager.KernelManager' + +## The name of the default kernel to start. +#c.JupyterConsoleApp.kernel_name = 'python' + +## Path to the ssh key to use for logging in to the ssh server. +#c.JupyterConsoleApp.sshkey = '' + +## The SSH server to use to connect to the kernel. +#c.JupyterConsoleApp.sshserver = '' + +#------------------------------------------------------------------------------ +# Application(SingletonConfigurable) configuration +#------------------------------------------------------------------------------ + +## This is an application. + +## The date format used by logging formatters for %(asctime)s +#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' + +## The Logging format template +#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' + +## Set the log level by value or name. +#c.Application.log_level = 30 + +#------------------------------------------------------------------------------ +# JupyterApp(Application) configuration +#------------------------------------------------------------------------------ + +## Base class for Jupyter applications + +## Answer yes to any prompts. +#c.JupyterApp.answer_yes = False + +## Full path of a config file. +#c.JupyterApp.config_file = '' + +## Specify a config file to load. +#c.JupyterApp.config_file_name = '' + +## Generate default config file. +#c.JupyterApp.generate_config = False + +#------------------------------------------------------------------------------ +# JupyterQtConsoleApp(JupyterApp,JupyterConsoleApp) configuration +#------------------------------------------------------------------------------ + +## Whether to display a banner upon starting the QtConsole. +#c.JupyterQtConsoleApp.display_banner = True + +## Start the console window with the menu bar hidden. +#c.JupyterQtConsoleApp.hide_menubar = False + +## Start the console window maximized. +#c.JupyterQtConsoleApp.maximize = False + +## Use a plaintext widget instead of rich text (plain can't print/save). +#c.JupyterQtConsoleApp.plain = False + +## path to a custom CSS stylesheet +#c.JupyterQtConsoleApp.stylesheet = '' + +#------------------------------------------------------------------------------ +# ConsoleWidget(NewBase) configuration +#------------------------------------------------------------------------------ + +## An abstract base class for console-type widgets. This class has functionality +# for: +# +# * Maintaining a prompt and editing region +# * Providing the traditional Unix-style console keyboard shortcuts +# * Performing tab completion +# * Paging text +# * Handling ANSI escape codes +# +# ConsoleWidget also provides a number of utility methods that will be +# convenient to implementors of a console-style widget. + +## Whether to process ANSI escape codes. +#c.ConsoleWidget.ansi_codes = True + +## The maximum number of lines of text before truncation. Specifying a non- +# positive number disables text truncation (not recommended). +#c.ConsoleWidget.buffer_size = 500 + +## The height of the console at start time in number of characters (will double +# with `vsplit` paging) +#c.ConsoleWidget.console_height = 25 + +## The width of the console at start time in number of characters (will double +# with `hsplit` paging) +#c.ConsoleWidget.console_width = 81 + +## Whether to automatically execute on syntactically complete input. +# +# If False, Shift-Enter is required to submit each execution. Disabling this is +# mainly useful for non-Python kernels, where the completion check would be +# wrong. +#c.ConsoleWidget.execute_on_complete_input = True + +## The font family to use for the console. On OSX this defaults to Monaco, on +# Windows the default is Consolas with fallback of Courier, and on other +# platforms the default is Monospace. +#c.ConsoleWidget.font_family = '' + +## The font size. If unconfigured, Qt will be entrusted with the size of the +# font. +#c.ConsoleWidget.font_size = 0 + +## The type of completer to use. Valid values are: +# +# 'plain' : Show the available completion as a text list +# Below the editing area. +# 'droplist': Show the completion in a drop down list navigable +# by the arrow keys, and from which you can select +# completion by pressing Return. +# 'ncurses' : Show the completion as a text list which is navigable by +# `tab` and arrow keys. +#c.ConsoleWidget.gui_completion = 'ncurses' + +## Whether to include output from clients other than this one sharing the same +# kernel. +# +# Outputs are not displayed until enter is pressed. +c.ConsoleWidget.include_other_output = True + +## The type of underlying text widget to use. Valid values are 'plain', which +# specifies a QPlainTextEdit, and 'rich', which specifies a QTextEdit. +#c.ConsoleWidget.kind = 'plain' + +## Prefix to add to outputs coming from clients other than this one. +# +# Only relevant if include_other_output is True. +#c.ConsoleWidget.other_output_prefix = '[remote] ' + +## The type of paging to use. Valid values are: +# +# 'inside' +# The widget pages like a traditional terminal. +# 'hsplit' +# When paging is requested, the widget is split horizontally. The top +# pane contains the console, and the bottom pane contains the paged text. +# 'vsplit' +# Similar to 'hsplit', except that a vertical splitter is used. +# 'custom' +# No action is taken by the widget beyond emitting a +# 'custom_page_requested(str)' signal. +# 'none' +# The text is written directly to the console. +#c.ConsoleWidget.paging = 'inside' + +## The visibility of the scrollar. If False then the scrollbar will be invisible. +#c.ConsoleWidget.scrollbar_visibility = True + +#------------------------------------------------------------------------------ +# HistoryConsoleWidget(ConsoleWidget) configuration +#------------------------------------------------------------------------------ + +## A ConsoleWidget that keeps a history of the commands that have been executed +# and provides a readline-esque interface to this history. + +## +#c.HistoryConsoleWidget.history_lock = False + +#------------------------------------------------------------------------------ +# FrontendWidget(HistoryConsoleWidget,BaseFrontendMixin) configuration +#------------------------------------------------------------------------------ + +## A Qt frontend for a generic Python kernel. + +## +#c.FrontendWidget.banner = '' + +## Whether to clear the console when the kernel is restarted +#c.FrontendWidget.clear_on_kernel_restart = True + +## Whether to ask for user confirmation when restarting kernel +#c.FrontendWidget.confirm_restart = True + +## Whether to draw information calltips on open-parentheses. +#c.FrontendWidget.enable_calltips = True + +## The pygments lexer class to use. +#c.FrontendWidget.lexer_class = traitlets.Undefined + +#------------------------------------------------------------------------------ +# IPythonWidget(FrontendWidget) configuration +#------------------------------------------------------------------------------ + +## Dummy class for config inheritance. Destroyed below. + +#------------------------------------------------------------------------------ +# JupyterWidget(IPythonWidget) configuration +#------------------------------------------------------------------------------ + +## A FrontendWidget for a Jupyter kernel. + +## A command for invoking a GUI text editor. If the string contains a {filename} +# format specifier, it will be used. Otherwise, the filename will be appended to +# the end the command. To use a terminal text editor, the command should launch +# a new terminal, e.g. ``"gnome-terminal -- vim"``. +#c.JupyterWidget.editor = '' + +## The editor command to use when a specific line number is requested. The string +# should contain two format specifiers: {line} and {filename}. If this parameter +# is not specified, the line number option to the %edit magic will be ignored. +#c.JupyterWidget.editor_line = '' + +## +#c.JupyterWidget.in_prompt = 'In [%i]: ' + +## +#c.JupyterWidget.input_sep = '\n' + +## +#c.JupyterWidget.out_prompt = 'Out[%i]: ' + +## +#c.JupyterWidget.output_sep = '' + +## +#c.JupyterWidget.output_sep2 = '' + +## A CSS stylesheet. The stylesheet can contain classes for: +# 1. Qt: QPlainTextEdit, QFrame, QWidget, etc +# 2. Pygments: .c, .k, .o, etc. (see PygmentsHighlighter) +# 3. QtConsole: .error, .in-prompt, .out-prompt, etc +#c.JupyterWidget.style_sheet = '' + +## If not empty, use this Pygments style for syntax highlighting. Otherwise, the +# style sheet is queried for Pygments style information. +#c.JupyterWidget.syntax_style = '' + +#------------------------------------------------------------------------------ +# KernelManager(ConnectionFileMixin) configuration +#------------------------------------------------------------------------------ + +## Manages a single kernel in a subprocess on this host. +# +# This version starts kernels with Popen. + +## Should we autorestart the kernel if it dies. +#c.KernelManager.autorestart = True + +## DEPRECATED: Use kernel_name instead. +# +# The Popen Command to launch the kernel. Override this if you have a custom +# kernel. If kernel_cmd is specified in a configuration file, Jupyter does not +# pass any arguments to the kernel, because it cannot make any assumptions about +# the arguments that the kernel understands. In particular, this means that the +# kernel does not receive the option --debug if it given on the Jupyter command +# line. +#c.KernelManager.kernel_cmd = [] + +## Time to wait for a kernel to terminate before killing it, in seconds. +#c.KernelManager.shutdown_wait_time = 5.0 + +#------------------------------------------------------------------------------ +# KernelRestarter(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ + +## Monitor and autorestart a kernel. + +## Whether to include every poll event in debugging output. +# +# Has to be set explicitly, because there will be *a lot* of output. +#c.KernelRestarter.debug = False + +## Whether to choose new random ports when restarting before the kernel is alive. +#c.KernelRestarter.random_ports_until_alive = True + +## The number of consecutive autorestarts before the kernel is presumed dead. +#c.KernelRestarter.restart_limit = 5 + +## Kernel heartbeat interval in seconds. +#c.KernelRestarter.time_to_dead = 3.0 + +#------------------------------------------------------------------------------ +# Session(Configurable) configuration +#------------------------------------------------------------------------------ + +## Object for handling serialization and sending of messages. +# +# The Session object handles building messages and sending them with ZMQ sockets +# or ZMQStream objects. Objects can communicate with each other over the +# network via Session objects, and only need to work with the dict-based IPython +# message spec. The Session will handle serialization/deserialization, security, +# and metadata. +# +# Sessions support configurable serialization via packer/unpacker traits, and +# signing with HMAC digests via the key/keyfile traits. +# +# Parameters ---------- +# +# debug : bool +# whether to trigger extra debugging statements +# packer/unpacker : str : 'json', 'pickle' or import_string +# importstrings for methods to serialize message parts. If just +# 'json' or 'pickle', predefined JSON and pickle packers will be used. +# Otherwise, the entire importstring must be used. +# +# The functions must accept at least valid JSON input, and output *bytes*. +# +# For example, to use msgpack: +# packer = 'msgpack.packb', unpacker='msgpack.unpackb' +# pack/unpack : callables +# You can also set the pack/unpack callables for serialization directly. +# session : bytes +# the ID of this Session object. The default is to generate a new UUID. +# username : unicode +# username added to message headers. The default is to ask the OS. +# key : bytes +# The key used to initialize an HMAC signature. If unset, messages +# will not be signed or checked. +# keyfile : filepath +# The file containing a key. If this is set, `key` will be initialized +# to the contents of the file. + +## Threshold (in bytes) beyond which an object's buffer should be extracted to +# avoid pickling. +#c.Session.buffer_threshold = 1024 + +## Whether to check PID to protect against calls after fork. +# +# This check can be disabled if fork-safety is handled elsewhere. +#c.Session.check_pid = True + +## Threshold (in bytes) beyond which a buffer should be sent without copying. +#c.Session.copy_threshold = 65536 + +## Debug output in the Session +#c.Session.debug = False + +## The maximum number of digests to remember. +# +# The digest history will be culled when it exceeds this value. +#c.Session.digest_history_size = 65536 + +## The maximum number of items for a container to be introspected for custom +# serialization. Containers larger than this are pickled outright. +#c.Session.item_threshold = 64 + +## execution key, for signing messages. +#c.Session.key = b'' + +## path to file containing execution key. +#c.Session.keyfile = '' + +## Metadata dictionary, which serves as the default top-level metadata dict for +# each message. +#c.Session.metadata = {} + +## The name of the packer for serializing messages. Should be one of 'json', +# 'pickle', or an import name for a custom callable serializer. +#c.Session.packer = 'json' + +## The UUID identifying this session. +#c.Session.session = '' + +## The digest scheme used to construct the message signatures. Must have the form +# 'hmac-HASH'. +#c.Session.signature_scheme = 'hmac-sha256' + +## The name of the unpacker for unserializing messages. Only used with custom +# functions for `packer`. +#c.Session.unpacker = 'json' + +## Username for the Session. Default is your system username. +#c.Session.username = 'hjalmarlucius' diff --git a/manjaro.md b/manjaro.md new file mode 100644 index 0000000..2503251 --- /dev/null +++ b/manjaro.md @@ -0,0 +1,32 @@ +# linux +* storage + * `yay megasync` + * `yay onedrive-abraunegg` + * `yay dropbox` +* nvidia + * `sudo pacman -S cuda` + * `yay nvidia-vulkan` +* applications + * `sudo pacman -S npm nodejs` + * `sudo pacman -S ninja the_silver_searcher` + * `sudo pacman -S zathura-pdf-mupdf redshift yay` + * `yay ncspot-git` +* code + * `sudo pacman -S neovim powerline tmux diff-so-fancy ttf-inconsolata` +* gaming + * `sudo pacman -S steam-manjaro steam-native` +* ssh setup + * enable SSH `sudo systemctl enable --now sshd.service` + * enable X11 forwarding in `/etc/ssh/sshd_config` +* set shell to 'fish' via `bmenu` +* onedrive as service `systemctl --user enable onedrive` + +# python +* `pip install --pre torch torchvision -f https://download.pytorch.org/whl/nightly/cu101/torch_nightly.html` +* `pip install nodejs plotly flake8 numpy scipy sympy matplotlib seaborn pytorch-lightning ggplot ptvsd tensorboard torchtext ipython matplotlib-label-lines ipympl pytest qbstyles` + +# useful commands +* enable onedrive at boot `systemctl --user enable onedrive` +* start onedrive now `systemctl --user start onedrive` +* log onedrive `journalctl --user-unit onedrive -f` +* replace caps with esc `setxkbmap -option 'caps:escape` diff --git a/moc/config b/moc/config new file mode 100644 index 0000000..2123fbc --- /dev/null +++ b/moc/config @@ -0,0 +1,673 @@ +# This is a configuration file for the MOC player. It should be named +# 'config' and placed in the ~/.moc directory. As this file can specify +# commands which invoke other applications, MOC will refuse to start if it +# is not owned by either root or the current user, or if it is writable by +# anyone other than its owner. All options are given with their default +# values, and therefore commented. + +# Comments begin with '#'. +# You can use quotes and escape ('\') in parameters. +# +# You can have variable values substituted by enclosing the variable name +# as "${...}". (This only applies to the portion of the option following +# the '='.) Variables are substituted first from the environment then, +# if not found, from the configuration options. (Note that the value of +# a configuration option substituted is that which it has at the time the +# substitution variable is encountered.) If there is a naming conflict +# between an environment and configuration variable, you may be able to +# resolve it by using lowercase as the environment variable matches are +# case-sensitive whereas the configuration variables are not. +# +# You can also use the form "${...:-...}" where the value in the second +# position will be substituted if the variable name given in the first +# position is unset or null. +# +# So, for example: +# +# MusicDir = /music/${USER:-public} +# Fastdir1 = ${MusicDir}/mp3/rock +# Fastdir2 = ${MusicDir}/mp3/electronic +# Fastdir3 = ${MusicDir}/mp3/rap +# Fastdir4 = ${MusicDir}/mp3/etc +# +# Variable names are limited to those accepted by the BASH shell; that +# is, those comprising the upper- and lowercase ASCII characters, digits +# and the underscore. +# +# If you need to use the "${" sequence for any other purpose, write "$${" +# and it will be replaced by "${" and not treated as a substitution. +# +# Some options take lists of strings as their values. The strings are +# separated by colons. Additional strings can be appended to the list +# using "+=" in place of a plain "=" to assign the value. For an example, +# see the XTerms option. +# +# You can override any configuration option when you run MOC using the +# '-O' command line option: +# +# mocp -O AutoNext=no -O messagelingertime=1 -O XTerms+=xxt:xwt +# +# This command line option can be repeated as many times as needed and +# the configuration option name is not case sensitive. (Note that MOC +# does not perform variable substitution on the value of such overridden +# configuration options.) Most option values are set before the +# configuration file is processed (which allows the new values to be +# picked up by substitutions), however list-valued options are overridden +# afterwards (which gives the choice of whether the configured values are +# replaced or added to). + +# Remember that the client and server are separate processes and the +# server will retain the configuration values formed from the environment +# within which it was originally started. + +# Show file titles (title, author, album) instead of file names? +ReadTags = no + +# In which directory do you store your music files? If you specify it +# you will be able to jump straight to this directory with the '-m' +# parameter or the 'm' command. This can also point to a playlist. +# +# Example: MusicDir = "/home/joe/music" +# +#MusicDir = + +# Start in the music directory by default? If set to 'no', start +# in the current directory by default. A single directory on +# the command line takes precedence. +#StartInMusicDir = no + +# 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 = 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 + +# 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 = manjaro + +# 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 + +# 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%) +# Layout2 = "" +# 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 diff --git a/moc/keymap b/moc/keymap new file mode 100644 index 0000000..3877c4b --- /dev/null +++ b/moc/keymap @@ -0,0 +1,153 @@ +# Example keymap file +# To define your own keys for MOC commands, create a keymap file in the ~/.moc/ +# directory and add options Keymap = FILE in ~/.moc/config +# +# The format of this file is: +# Lines beginning with # are comments. +# Blank lines are ignored. +# Every other line is expected to be in format: +# +# COMMAND = [KEY ...] +# +# The key can be: +# - just a char, like i, L, ", * +# - CTRL-KEY sequence: ^k (CTRL-k), ^4 +# - ALT-KEY (meta sequence): M-j (ALT-j), M-% +# - Special keys: +# DOWN +# UP +# LEFT +# RIGHT +# HOME +# BACKSPACE +# DEL +# INS +# ENTER +# PAGE_UP +# PAGE_DOWN +# TAB +# END +# KEYPAD_CENTER +# SPACE +# ESCAPE +# F1 - F12 +# +# Maximum number of keys for one command is 5. +# +# Omitting the key for a command will disassociate the key from the command. +# +# Default key configuration for MOC (and a list of all available commands): + +go = ENTER l +go_up = h +menu_down = j DOWN +menu_up = k UP +menu_page_down = ^f PAGE_DOWN +menu_page_up = ^b PAGE_UP +menu_first_item = J HOME +menu_last_item = K END +next = L +previous = H +quit_client = q +quit = Q +stop = s +pause = SPACE +toggle_read_tags = T +toggle_shuffle = S +toggle_repeat = R +toggle_auto_next = X +toggle_menu = ^W +toggle_layout = ^l +add_file = a +add_directory = A + +clear_playlist = D +delete_from_playlist = d +save_playlist = w +go_to_playing_file = g +go_to_a_directory = G + +volume_down_1 = < +volume_up_1 = > +volume_down_5 = , +volume_up_5 = . +seek_forward = RIGHT +seek_backward = LEFT +seek_forward_fast = ] +seek_backward_fast = [ +hide_message = I +refresh = ^r +reload = r +toggle_hidden_files = ^h +search_menu = / +help = ? +toggle_show_time = t +toggle_show_format = F +cancel = ^x ESCAPE +go_url = o +go_to_music_directory = m +theme_menu = V + +# div crap +# history_up = UP +# history_down = DOWN +# toggle_softmixer = M +# playlist_full_paths = +# plist_move_up = ^p +# plist_move_down = ^n +# remove_dead_entries = Y +# next_search = n +# mark_start = ' +# mark_end = " +# plist_add_stream = ^u +# toggle_mixer = x +# toggle_equalizer = E +# equalizer_refresh = e +# clear_queue = Z +# delete_to_start = ^u +# delete_to_end = ^k +# equalizer_prev = +# equalizer_next = +# toggle_make_mono = +# show_lyrics = +# enqueue_file = +# +# 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 + +# Key bindings for directories: defaults are Shift-number +# shift 1 = ! = Fastdir1 +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 = ) + +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 + +# The following commands are available but not assigned to any keys by +# default: +# +# toggle_percent Switch on/off play progress bar time percentage +# diff --git a/nvim/coc-settings.json b/nvim/coc-settings.json new file mode 100644 index 0000000..2446118 --- /dev/null +++ b/nvim/coc-settings.json @@ -0,0 +1,12 @@ +{ + "signature.target": "echo", + "python.jediEnabled": false, + "suggest.autoTrigger": "always", + "python.autoComplete.addBrackets": true, + "python.linting.pylintEnabled": false, + "python.linting.flake8Enabled": true, + "python.linting.pylintArgs": ["--disable=all", "--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode"], + "python.linting.flake8Args": ["--ignore=E226,E231,E241,E501,E701,E704"], + "python.linting.enabled": true, + "git.enableGutters": true +} diff --git a/nvim/init.vim b/nvim/init.vim new file mode 100644 index 0000000..78ddb9a --- /dev/null +++ b/nvim/init.vim @@ -0,0 +1,779 @@ +set shell=bash +" ----------------------------------------------------------------------------- +" plugins +" ----------------------------------------------------------------------------- +if ! filereadable(expand('~/.config/nvim/autoload/plug.vim')) + echo "Downloading junegunn/vim-plug to manage plugins..." + silent !mkdir -p ~/.config/nvim/autoload/ + silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim +endif + +call plug#begin('~/.config/nvim/plugged') +" tools +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} +Plug 'junegunn/fzf.vim' +Plug 'sheerun/vim-polyglot' " language syntax +Plug 'godlygeek/tabular' " help aligning text on tabs +Plug 'tpope/vim-fugitive' +Plug 'jupyter-vim/jupyter-vim' +" markdown +Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() } } +Plug 'plasticboy/vim-markdown' " markdown helper. +" helpers +Plug 'scrooloose/nerdcommenter' " commenting tool +Plug 'tpope/vim-surround' " parentheses helper +Plug 'mbbill/undotree' " Persistent undo +Plug 'junegunn/vim-peekaboo' " show paste buffers +Plug 'farmergreg/vim-lastplace' " When reopen a buffer, puts the cursor where it was last time +Plug 'christoomey/vim-tmux-navigator' " integrate movement in tmux and vim +Plug 'haya14busa/vim-asterisk' " better asterisk motions +Plug 'bfredl/nvim-miniyank' " nvim bugfix block copy +"Plug 'terryma/vim-multiple-cursors' " multiple cursors via 'C-n' +"Plug 'michaeljsmith/vim-indent-object' " define indent as a group to operate on +"Plug 'liuchengxu/vim-which-key' " popuup for shortcuts like emacs +" aesthetics +Plug 'chriskempson/base16-vim' " base16 themes +Plug 'junegunn/goyo.vim' " zen mode +Plug 'junegunn/limelight.vim' " highlight current paragraph +Plug 'PotatoesMaster/i3-vim-syntax' " syntax highlighting for i3 file +Plug 'chrisbra/Colorizer' " show color codes +Plug 'junegunn/rainbow_parentheses.vim' " colorize parentheses +" file mgmt +Plug 'jeetsukumaran/vim-buffergator' +"Plug 'scrooloose/nerdtree' +"Plug 'tiagofumo/vim-nerdtree-syntax-highlight' +"Plug 'vifm/vifm.vim' +Plug 'rafaqz/ranger.vim' +" themes +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' +Plug 'junegunn/seoul256.vim' +call plug#end() + +" ----------------------------------------------------------------------------- +" format +" ----------------------------------------------------------------------------- +"if has("nvim") +" set termguicolors +"endif +let base16colorspace=256 +colorscheme seoul256 +"let g:airline_theme='molokai' +"let g:airline_theme='qwq' +let g:airline_theme='badwolf' +"let g:airline_theme='silver' +"let g:airline_theme='raven' + +" Transparent Background (For i3 and compton) +highlight Normal guibg=NONE ctermbg=NONE +highlight LineNr guibg=NONE ctermbg=NONE + + +" ----------------------------------------------------------------------------- +" settings +" ----------------------------------------------------------------------------- +" general +set cmdheight=2 " height of command bar at the bottom. 1 is default +let g:BASH_Ctrl_j='off' " avoid 'C-j' being overridden to newline +let g:BASH_Ctrl_l='off' " avoid 'C-l' being overridden to newline +set updatetime=300 +set timeoutlen=500 +set lazyredraw + +" fold config +set foldmethod=indent +set foldlevelstart=20 +" zm/M zr/R increase/increase foldlevel (max) +" zo/O zc/C open / close fold (max) +" za zA switch fold (small/full) +" zi toggle folds +" zi zj move to next / prev fold + +" concealment +set conceallevel=2 +let g:tex_conceal='bd' + +" indentation +set ai " auto indent +set si " smart indent + +" Disables automatic commenting on newline: +autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o +autocmd Filetype markdown setlocal shiftwidth=2 + +" Automatically deletes all trailing whitespace on save. +autocmd BufWritePre * %s/\s\+$//e + +" default new file is markdown +autocmd BufEnter * if &filetype == "" | setlocal ft=markdown | endif + +" ----------------------------------------------------------------------------- +" keybinds +" ----------------------------------------------------------------------------- +" general +let mapleader="\" +let maplocalleader="," +"nmap :WhichKey '' +tmap +nmap :noh +if has('nvim') + nmap R :so ~/.config/nvim/init.vim + nmap E :tabe ~/.config/nvim/init.vim +else + nmap R :so ~/.vimrc + nmap E :tabe ~/.vimrc +endif +map q: +nmap Q +map p (miniyank-autoput) +map P (miniyank-autoPut) + +" search for selected text in visual mode +vnoremap // y/" + +" exit terminal +:tnoremap + +" keep selection after indenting +nmap >>_ +nmap <<_ +vmap >gv +vmap :TmuxNavigateLeft +nmap :TmuxNavigateDown +nmap :TmuxNavigateUp +nmap :TmuxNavigateRight + +" make splits and tabs +nmap :vsplit +nmap - :split +nmap o :tabnew % + +" resize windows with hjkl +nmap < +nmap - +nmap + +nmap > + +" other C-w commands to remember +" BAR maximise +" = equalize sizes +" T move buffer to new tab +" move windows with +HJKL +" H +" J +" K +" L + +" remove buffer +nmap d :bpspbnbd +" nmap q :bd + +" fullscreen mode and reset +map :Goyo +map = +map +map _ + +" tab management +nmap h :tabprevious +nmap l :tabnext +nmap :call MoveToNextTab() +nmap :call MoveToPrevTab() +nmap :execute 'silent! tabmove ' . (tabpagenr()-2) +nmap :execute 'silent! tabmove ' . (tabpagenr()+1) + +" fzf +nmap g :GitFiles +nmap f :Files +nmap l :Fag +nmap b :Buffers +nmap c :Commands +nmap t :Colors +nmap m :Marks +nmap w :Windows +nmap :Maps +let g:fzf_action={ + \ 'ctrl-o': 'tab split', + \ 'ctrl-h': 'split', + \ 'ctrl-l': 'vsplit' } + +" Close preview window when completion is done +autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif + +" coc menus +imap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() +imap pumvisible() ? "\" : "\" +imap coc#refresh() +" coc helpers +nmap gP (coc-diagnostic-prev) +nmap gp (coc-diagnostic-next) +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) +nmap gR (coc-refactor) +" coc git +nmap gn (coc-git-nextchunk) +nmap gp (coc-git-prevchunk) +nmap g (coc-git-chunkinfo) +nmap gs :CocCommand git.chunkStage +vmap gs :CocCommand git.chunkStage +vmap gX :CocCommand git.chunkUndo + +" vim-fugitive +" g? for fugitive help. :Gdiff, :Gblame, :Gstats '=' expand, '-' add/reset changes, :Gcommit % to commit current file with messag +nmap gg :vertical Gstatus:vertical resize 60 + +" nerdtree +map N :NERDTreeToggle + +" ranger.vim +map rr :RangerEdit +map rv :RangerVSplit +map rs :RangerSplit +map rt :RangerTab +map ri :RangerInsert +map ra :RangerAppend +map rc :set operatorfunc=RangerChangeOperatorg@ +map rd :RangerCD +map rld :RangerLCD + +" nerdcommenter +" 'c ', 'cl' aligned and 'cu>' remove + +" vim-surround +" Visual: 'SA' to wrap in A. Surround: 'csAB' to change from A to B, 'dsA' to remove A. Word: 'ysiwA' to wrap with A + +" tabular +" line up selected text by :Tabularize /[identifier] + +" vim markdown + +" vim asterisk + +map * (asterisk-*) +map # (asterisk-#) +map g* (asterisk-g*) +map g# (asterisk-g#) +map z* (asterisk-z*) +map gz* (asterisk-gz*) +map z# (asterisk-z#) +map gz# (asterisk-gz#) + +" buffergator +map b :BuffergatorOpen +map B :BuffergatorClose +map t :BuffergatorTabsOpen +map T :BuffergatorTabsClose +nmap j :BuffergatorMruCyclePrev +nmap k :BuffergatorMruCycleNext + +" jupyter-vim +let g:jupyter_mapkeys = 0 +" Send a selection of lines +nmap qR :JupyterRunFile +nmap qQ :JupyterSendCell +nmap qq JupyterRunTextObj +vmap qq JupyterRunVisual +" nmap qr :JupyterSendRange +" other +nmap qc :JupyterConnect +nmap qi :PythonImportThisFile +nmap qu :JupyterUpdateShell +nmap qb :PythonSetBreak +nmap qd :JupyterCd %:p:h + +" ----------------------------------------------------------------------------- +" plugin config +" ----------------------------------------------------------------------------- +" tmux navigator +let g:tmux_navigator_no_mappings=1 + +" undotree defaults +set undodir=~/.vim/undo/ + +" Goyo plugin makes text more readable when writing prose: +let g:goyo_width=120 +let g:goyo_height=85 +let g:goyo_linenr=1 +function! s:goyo_enter() + Limelight +endfunction + +function! s:goyo_leave() + highlight Normal guibg=NONE ctermbg=NONE + highlight LineNr guibg=NONE ctermbg=NONE + Limelight! +endfunction +autocmd! User GoyoEnter nested call goyo_enter() +autocmd! User GoyoLeave nested call goyo_leave() + +" Limelight +let g:limelight_conceal_ctermfg='gray' " Color name (:help cterm-colors) or ANSI code +let g:limelight_conceal_guifg='DarkGray' " Color name (:help gui-colors) or RGB color +let g:limelight_default_coefficient=0.7 +let g:limelight_paragraph_span=0 " Number of preceding/following paragraphs to include (default: 0) +let g:limelight_priority=-1 " Highlighting priority (default: 10). Set it to -1 not to overrule hlsearch +let g:limelight_bop='^\n^' +let g:limelight_eop='\ze\n\n' + +" NerdTree +" Nerd tree autostart if empty +" autocmd vimenter * NERDTree +"autocmd StdinReadPre * let s:std_in=1 +"autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif +"autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif +" Nerd tree binding +"autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif + +" Airline +let g:airline#extensions#tabline#enabled=1 +let g:airline#extensions#tabline#show_splits=0 +"let g:airline#extensions#tabline#show_tabs=0 +let g:airline#extensions#tabline#show_buffers = 0 +let g:airline#extensions#tabline#switch_buffers_and_tabs=0 +let g:airline_powerline_fonts=1 + +" vim-markdown +let g:vim_markdown_new_list_item_indent=0 +let g:vim_markdown_conceal=1 +let g:vim_markdown_math=0 + +" markdown preview +let g:mkdp_auto_start=0 " auto start on moving into +let g:mkdp_auto_close=0 " auto close on moving away +let g:mkdp_open_to_the_world=0 " available to others +let g:mkdp_open_ip='' " use custom IP to open preview page +let g:mkdp_port='' " use a custom port to start server or random for empty +let g:mkdp_browser='google-chrome' " specify browser to open preview page +let g:mkdp_markdown_css='' " use a custom markdown style must be absolute path +let g:mkdp_highlight_css='' " use a custom highlight style must absolute path +let g:mkdp_preview_options={ + \ 'mkit': {}, + \ 'katex': {}, + \ 'uml': {}, + \ 'maid': {}, + \ 'disable_sync_scroll': 0, + \ 'sync_scroll_type': 'middle', + \ 'hide_yaml_meta': 1 + \ } +" mkit: markdown-it options for render +" katex: katex options for math +" uml: markdown-it-plantuml options +" maid: mermaid options +" disable_sync_scroll: if disable sync scroll, default 0 +" sync_scroll_type: 'middle', 'top' or 'relative', default value is 'middle' +" middle: mean the cursor position alway show at the middle of the preview page +" top: mean the vim top viewport alway show at the top of the preview page +" relative: mean the cursor position alway show at the relative positon of the preview page +" hide_yaml_meta: if hide yaml metadata, default is 1 + +" peekaboo +let g:peekaboo_window='vert bo 80new' +let g:peekaboo_delay=1000 +let g:peekaboo_compact=0 + +" coc +function! s:check_back_space() abort + let col=col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction +nmap K :call show_documentation() + +" fzf only search lines and show preview +command! -bang -nargs=* Fag call s:fag(, {'options': '--delimiter : --nth 4..'}, 1) + +" fzf files with preview +command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--info=default', '--preview', 'cat {}']}, 1) + +" vim asterisk +let g:asterisk#keeppos = 1 + +" buffgator +let g:buffergator_mru_cycle_loop = 0 +let g:buffergator_suppress_keymaps = 1 +let g:buffergator_autoupdate = 1 +let g:buffergator_sort_regime = 'mru' +let g:buffergator_display_regime = 'basename' +let g:buffergator_autodismiss_on_select = 0 + +" ----------------------------------------------------------------------------- +" functions +" ----------------------------------------------------------------------------- +" coc +" show documentation in preview window +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + else + call CocAction('doHover') + endif +endfunction + +" fzf +let s:TYPE={'dict': type({}), 'funcref': type(function('call')), 'string': type(''), 'list': type([])} + +if !exists("*s:fag") +function! s:fag(query, ...) + if type(a:query) != s:TYPE.string + return s:warn('Invalid query argument') + endif + let query=empty(a:query) ? '^(?=.)' : a:query + let args=copy(a:000) + let ag_opts=len(args) > 1 && type(args[0]) == s:TYPE.string ? remove(args, 0) : '--follow' + let command=ag_opts . ' ' . fzf#shellescape(query) + return call('fzf#vim#ag_raw', insert(args, command, 0)) +endfunction +endif + +" for moving of tabs +if !exists("*MoveToPrevTab") + function MoveToPrevTab() + "there is only one window + if tabpagenr('$') == 1 && winnr('$') == 1 + return + endif + "preparing new window + let l:tab_nr=tabpagenr('$') + let l:cur_buf=bufnr('%') + if tabpagenr() != 1 + close! + if l:tab_nr == tabpagenr('$') + tabprev + endif + sp + else + close! + exe "0tabnew" + endif + "opening current buffer in new window + exe "b".l:cur_buf + endfunc +endif + +if !exists("*MoveToNextTab()") + function MoveToNextTab() + "there is only one window + if tabpagenr('$') == 1 && winnr('$') == 1 + return + endif + "preparing new window + let l:tab_nr=tabpagenr('$') + let l:cur_buf=bufnr('%') + if tabpagenr() < tab_nr + close! + if l:tab_nr == tabpagenr('$') + tabnext + endif + sp + else + close! + tabnew + endif + "opening current buffer in new window + exe "b".l:cur_buf + endfunc +endif + + +" ----------------------------------------------------------------------------- +" default settings config +" ----------------------------------------------------------------------------- + +" default.vim - Better vim than the default +" Maintainer: Liu-Cheng Xu +" Version: 1.0 +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if &compatible || exists('g:loaded_vim_better_default') + finish +endif +let g:loaded_vim_better_default = 1 + +let s:save_cpo = &cpo +set cpo&vim + +" Neovim has set these as default +if !has('nvim') + + set nocompatible + + syntax on " Syntax highlighting + filetype plugin indent on " Automatically detect file types + set autoindent " Indent at the same level of the previous line + set autoread " Automatically read a file changed outside of vim + set backspace=indent,eol,start " Backspace for dummies + set complete-=i " Exclude files completion + set display=lastline " Show as much as possible of the last line + set encoding=utf-8 " Set default encoding + set history=10000 " Maximum history record + set hlsearch " Highlight search terms + set incsearch " Find as you type search + set laststatus=2 " Always show status line + set ttymouse=xterm2 + set mouse=a " Automatically enable mouse usage + set smarttab " Smart tab + set ttyfast " Faster redrawing + set viminfo+=! " Viminfo include ! + set wildmenu " Show list instead of just completing + + "set ttymouse=xterm2 + +endif + +set shortmess=atOI " No help Uganda information, and overwrite read messages to avoid PRESS ENTER prompts +set ignorecase " Case insensitive search +set wildignorecase +set smartcase " ... but case sensitive when uc present +set scrolljump=5 " Line to scroll when cursor leaves screen +set scrolloff=3 " Minumum lines to keep above and below cursor +set nowrap " Do not wrap long lines +set shiftwidth=4 " Use indents of 4 spaces +set tabstop=4 " An indentation every four columns +set softtabstop=4 " Let backspace delete indent +set splitright " Puts new vsplit windows to the right of the current +set splitbelow " Puts new split windows to the bottom of the current +set autowrite " Automatically write a file when leaving a modified buffer +set mousehide " Hide the mouse cursor while typing +set hidden " Allow buffer switching without saving +set t_Co=256 " Use 256 colors +set ruler " Show the ruler +set showcmd " Show partial commands in status line and Selected characters/lines in visual mode +set showmode " Show current mode in command-line +set showmatch " Show matching brackets/parentthesis +set matchtime=5 " Show matching time +set report=0 " Always report changed lines +set linespace=0 " No extra spaces between rows +set pumheight=20 " Avoid the pop up menu occupying the whole screen + +if !exists('g:vim_better_default_tabs_as_spaces') || g:vim_better_default_tabs_as_spaces + set expandtab " Tabs are spaces, not tabs +end + +" http://stackoverflow.com/questions/6427650/vim-in-tmux-background-color-changes-when-paging/15095377#15095377 +set t_ut= + +set winminheight=0 +set wildmode=list:longest,full + +set listchars=tab:→\ ,eol:↵,trail:·,extends:↷,precedes:↶ + +set whichwrap+=<,>,h,l " Allow backspace and cursor keys to cross line boundaries + +set termencoding=utf-8 +set fileencoding=utf-8 +set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 + +set wildignore+=*swp,*.class,*.pyc,*.png,*.jpg,*.gif,*.zip +set wildignore+=*/tmp/*,*.o,*.obj,*.so " Unix +set wildignore+=*\\tmp\\*,*.exe " Windows + +" Visual shifting (does not exit Visual mode) +vnoremap < >gv +" Treat long lines as break lines (useful when moving around in them) +nmap j gj +nmap k gk +vmap j gj +vmap k gk + +" :W sudo saves the file +" (useful for handling the permission-denied error) +command! W w !sudo tee % > /dev/null + +" Change cursor shape for iTerm2 on macOS { + " bar in Insert mode + " inside iTerm2 + if $TERM_PROGRAM =~# 'iTerm' + let &t_SI = "\]50;CursorShape=1\x7" + let &t_SR = "\]50;CursorShape=2\x7" + let &t_EI = "\]50;CursorShape=0\x7" + endif + + " inside tmux + if exists('$TMUX') && $TERM != 'xterm-kitty' + let &t_SI = "\Ptmux;\\]50;CursorShape=1\x7\\\" + let &t_SR = "\Ptmux;\\]50;CursorShape=2\x7\\\" + let &t_EI = "\Ptmux;\\]50;CursorShape=0\x7\\\" + endif + + " inside neovim + if has('nvim') + let $NVIM_TUI_ENABLE_CURSOR_SHAPE=2 + endif +" } + +if get(g:, 'vim_better_default_minimum', 0) + finish +endif + +if get(g:, 'vim_better_default_backup_on', 0) + set backup +else + set nobackup + set noswapfile + set nowritebackup +endif + +"set background=dark " Assume dark background +set cursorline " Highlight current line +set fileformats=unix,dos,mac " Use Unix as the standard file type +set number " Line numbers on +"set relativenumber " Relative numbers on +set fillchars=vert:│,stl:\ ,stlnc:\ + +" Annoying temporary files +set directory=/tmp//,. +set backupdir=/tmp//,. +"if v:version >= 703 + "set undodir=/tmp//,. +"endif + +highlight clear SignColumn " SignColumn should match background +" highlight clear LineNr " Current line number row will have same background color in relative mode + +if has('unnamedplus') + set clipboard+=unnamedplus +else + set clipboard+=unnamed +endif + +if get(g:, 'vim_better_default_persistent_undo', 1) + if has('persistent_undo') + set undofile " Persistent undo + set undolevels=500 " Maximum number of changes that can be undone + set undoreload=5000 " Maximum number lines to save for undo on a buffer reload + endif +endif + +if has('gui_running') + set guioptions-=r " Hide the right scrollbar + set guioptions-=L " Hide the left scrollbar + set guioptions-=T + set guioptions-=e + set shortmess+=c + " No annoying sound on errors + set noerrorbells + set novisualbell + set visualbell t_vb= +endif + +if get(g:, 'vim_better_default_key_mapping', 1) + +" Basic { + if get(g:, 'vim_better_default_basic_key_mapping', 1) + " Insert mode shortcut + inoremap + inoremap + inoremap + inoremap + inoremap + " Bash like + inoremap + inoremap + inoremap + " Command mode shortcut + cnoremap + cnoremap + cnoremap + cnoremap + cnoremap + cnoremap + cnoremap + cnoremap + " Quit visual mode + vnoremap v + " Move to the start of line + nnoremap H ^ + " Move to the end of line + nnoremap L $ + " Redo + nnoremap U + " Quick command mode + nnoremap : + " In the quickfix window, is used to jump to the error under the + " cursor, so undefine the mapping there. + autocmd BufReadPost quickfix nnoremap + " Yank to the end of line + nnoremap Y y$ + " Open shell in vim + if has('nvim') || has('terminal') + map ' :terminal + else + map ' :shell + endif + endif +" } + +" Buffer { + if get(g:, 'vim_better_default_buffer_key_mapping', 0) + nnoremap bp :bprevious + nnoremap bn :bnext + nnoremap bf :bfirst + nnoremap bl :blast + nnoremap bd :bpspbnbd + nnoremap bk :bw + endif +" } + +" File { + if get(g:, 'vim_better_default_file_key_mapping', 1) + " File save + nnoremap fs :update + endif +" } + +" Fold { + if get(g:, 'vim_better_default_fold_key_mapping', 1) + nnoremap f0 :set foldlevel=0 + nnoremap f1 :set foldlevel=1 + nnoremap f2 :set foldlevel=2 + nnoremap f3 :set foldlevel=3 + nnoremap f4 :set foldlevel=4 + nnoremap f5 :set foldlevel=5 + nnoremap f6 :set foldlevel=6 + nnoremap f7 :set foldlevel=7 + nnoremap f8 :set foldlevel=8 + nnoremap f9 :set foldlevel=9 + endif +" } + +" Window { + if get(g:, 'vim_better_default_window_key_mapping', 1) + " resize + nnoremap wh 5< + nnoremap wl 5> + nnoremap wj :resize +5 + nnoremap wk :resize -5 + nnoremap w= = + nnoremap w + nnoremap w- _ + nnoremap wg :Goyo + " move + nnoremap H H + nnoremap L L + nnoremap J J + nnoremap K K + " rotate + nnoremap wr r + nnoremap wR R + nnoremap wx x + " tabs + nnoremap wo o + endif +" } + +endif + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/onedrive/config b/onedrive/config new file mode 100644 index 0000000..c6830db --- /dev/null +++ b/onedrive/config @@ -0,0 +1,37 @@ +# Configuration for OneDrive Linux Client +# This file contains the list of supported configuration fields +# with their default values. +# All values need to be enclosed in quotes +# When changing a config option below, remove the '#' from the start of the line +# For explanations of all config options below see docs/USAGE.md or the man page. +# +sync_dir = "/mnt/storage/Onedrive" +# skip_file = "~*|.~*|*.tmp" +# monitor_interval = "45" +skip_dir = "Videos" +# log_dir = "/var/log/onedrive/" +# drive_id = "" +# upload_only = "false" +# check_nomount = "false" +# check_nosync = "false" +# download_only = "false" +# disable_notifications = "false" +# disable_upload_validation = "false" +# enable_logging = "false" +# force_http_11 = "false" +# force_http_2 = "false" +# local_first = "false" +# no_remote_delete = "false" +# skip_symlinks = "false" +# debug_https = "false" +# skip_dotfiles = "false" +# dry_run = "false" +# min_notify_changes = "5" +# monitor_log_frequency = "5" +# monitor_fullscan_frequency = "10" +# sync_root_files = "false" +# classify_as_big_delete = "1000" +# user_agent = "" +# remove_source_files = "false" +# skip_dir_strict_match = "false" +# application_id = "" diff --git a/ranger/colorschemes/__init__.py b/ranger/colorschemes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ranger/colorschemes/colorful.py b/ranger/colorschemes/colorful.py new file mode 100644 index 0000000..d72a60b --- /dev/null +++ b/ranger/colorschemes/colorful.py @@ -0,0 +1,115 @@ +from ranger.gui.colorscheme import ColorScheme +from ranger.gui.color import * + +class ColorScheme(ColorScheme): + + def use(self, context): + fg, bg, attr = default_colors + + if context.reset: + return default_colors + + elif context.in_browser: + if context.selected: + attr = reverse + else: + attr = normal + if context.empty or context.error: + fg = 6 + bg = 1 + if context.border: + fg = white + if context.image: + fg = 201 + if context.video: + fg = 13 + if context.audio: + fg = 10 + if context.document: + fg = 12 + if context.container: + attr |= bold + fg = 1 + if context.directory: + attr |= normal + fg = 3 + elif context.executable and not \ + any((context.media, context.container, + context.fifo, context.socket)): + attr |= bold + fg = 2 + if context.socket: + fg = 21 + attr |= bold + if context.fifo or context.device: + fg = 21 + if context.device: + attr |= bold + if context.link: + fg = context.good and 6 or 1 + if context.bad: + fg = 0 + bg = 1 + if context.tag_marker and not context.selected: + attr |= bold + fg = 88 + if not context.selected and (context.cut or context.copied): + attr = reverse + if context.main_column: + if context.selected: + attr |= bold + if context.marked: + attr |= bold + fg = 8 + if context.badinfo: + if attr & reverse: + bg = 1 + else: + fg = 7 + + elif context.in_titlebar: + attr |= bold + if context.hostname: + fg = context.bad and 1 or 5 + elif context.directory: + fg = 5 + elif context.tab: + if context.good: + bg = 2 + + elif context.in_statusbar: + if context.permissions: + if context.good: + fg = 2 + bg = 0 + elif context.bad: + fg = 1 + if context.marked: + attr |= bold | reverse + fg = 88 + if context.message: + if context.bad: + attr |= bold + fg = 9 + if context.loaded: + bg = 1 + + + if context.text: + if context.highlight: + attr |= reverse + + if context.in_taskview: + if context.title: + fg = 4 + + if context.selected: + attr |= reverse + + if context.loaded: + if context.selected: + fg = 1 + else: + bg = 1 + + return fg, bg, attr diff --git a/ranger/colorschemes/ontherocks.py b/ranger/colorschemes/ontherocks.py new file mode 100644 index 0000000..98f6b73 --- /dev/null +++ b/ranger/colorschemes/ontherocks.py @@ -0,0 +1,156 @@ +from ranger.gui.colorscheme import ColorScheme +from ranger.gui.color import * + +class base(ColorScheme): + progress_bar_color = 1 + + def use(self, context): + fg, bg, attr = default_colors + + if context.reset: + return default_colors + + elif context.in_browser: + if context.selected: + attr = reverse + else: + attr = normal + if context.empty or context.error: + fg = 7 + bg = 1 + if context.border: + fg = 238 + if context.image: + fg = 146 + if context.video: + fg = 176 + if context.audio: + fg = 173 + if context.document: + fg = 216 + if context.container: + attr |= bold + fg = 1 + if context.directory: + attr |= bold + fg = 8 + elif context.executable and not \ + any((context.media, context.container, + context.fifo, context.socket)): + attr |= bold + fg = 4 + if context.socket: + fg = 3 + attr |= bold + if context.fifo or context.device: + fg = 10 + if context.device: + attr |= bold + if context.link: + fg = context.good and 7 or 8 + bg = 8 + if context.bad: + fg = 1 + if context.tag_marker and not context.selected: + attr |= bold + if fg in (7, 8): + fg = 1 + else: + fg = 1 + if not context.selected and (context.cut or context.copied): + fg = 15 + bg = 8 + if context.main_column: + if context.selected: + attr |= bold + if context.marked: + attr |= bold + fg = 8 + if context.badinfo: + if attr & reverse: + bg = 1 + else: + fg = 7 + + elif context.in_titlebar: + attr |= bold + if context.hostname: + fg = context.bad and 8 or 7 + elif context.directory: + fg = 8 + elif context.tab: + if context.good: + fg = 1 + elif context.link: + fg = 8 + + elif context.in_statusbar: + if context.permissions: + if context.good: + fg = 7 + elif context.bad: + fg = 8 + if context.marked: + attr |= bold | reverse + fg = 8 + if context.message: + if context.bad: + attr |= bold + fg = 10 + if context.loaded: + bg = self.progress_bar_color + if context.vcsinfo: + fg = 10 + attr &= ~bold + if context.vcscommit: + fg = 5 + attr &= ~bold + + + if context.text: + if context.highlight: + attr |= reverse + + if context.in_taskview: + if context.title: + fg = 8 + + if context.selected: + attr |= reverse + + if context.loaded: + if context.selected: + fg = self.progress_bar_color + else: + bg = self.progress_bar_color + + + if context.vcsfile and not context.selected: + attr &= ~bold + if context.vcsconflict: + fg = 11 + elif context.vcschanged: + fg = 12 + elif context.vcsunknown: + fg = 210 + elif context.vcsstaged: + fg = 216 + elif context.vcssync: + fg = 113 + elif context.vcsignored: + fg = 141 + + elif context.vcsremote and not context.selected: + attr &= ~bold + if context.vcssync: + fg = 12 + elif context.vcsbehind: + fg = 13 + elif context.vcsahead: + fg = 9 + elif context.vcsdiverged: + fg = 10 + elif context.vcsunknown: + fg = 11 + + return fg, bg, attr diff --git a/ranger/colorschemes/zenburn.py b/ranger/colorschemes/zenburn.py new file mode 100644 index 0000000..26de9dc --- /dev/null +++ b/ranger/colorschemes/zenburn.py @@ -0,0 +1,163 @@ +# Ivaylo Kuzev , 2014 +# Zenburn like colorscheme for https://github.com/hut/ranger . + +# default colorscheme. +# Copyright (C) 2009-2013 Roman Zimbelmann +# This software is distributed under the terms of the GNU GPL version 3. + +from ranger.gui.colorscheme import ColorScheme +from ranger.gui.color import * + +class Zenburn(ColorScheme): + progress_bar_color = 108 + + def use(self, context): + fg, bg, attr = default_colors + + if context.reset: + return default_colors + + elif context.in_browser: + if context.selected: + attr = reverse + else: + attr = normal + if context.empty or context.error: + fg = 174 + bg = 235 + if context.border: + fg = 248 + if context.image: + fg = 109 + if context.video: + fg = 66 + if context.audio: + fg = 116 + if context.document: + fg = 151 + if context.container: + attr |= bold + fg = 174 + if context.directory: + attr |= bold + fg = 223 + elif context.executable and not \ + any((context.media, context.container, + context.fifo, context.socket)): + attr |= bold + fg = 108 + if context.socket: + fg = 180 + attr |= bold + if context.fifo or context.device: + fg = 144 + if context.device: + attr |= bold + if context.link: + fg = context.good and 223 or 116 + bg = 234 + if context.bad: + bg = 235 + if context.tag_marker and not context.selected: + attr |= bold + if fg in (174, 95): + fg = 248 + else: + fg = 174 + if not context.selected and (context.cut or context.copied): + fg = 108 + bg = 234 + if context.main_column: + if context.selected: + attr |= bold + if context.marked: + attr |= bold + fg = 223 + if context.badinfo: + if attr & reverse: + bg = 95 + else: + fg = 95 + + elif context.in_titlebar: + attr |= bold + if context.hostname: + fg = context.bad and 174 or 180 + elif context.directory: + fg = 223 + elif context.tab: + if context.good: + bg = 180 + elif context.link: + fg = 116 + + elif context.in_statusbar: + if context.permissions: + if context.good: + fg = 108 + elif context.bad: + fg = 174 + if context.marked: + attr |= bold | reverse + fg = 223 + if context.message: + if context.bad: + attr |= bold + fg = 174 + if context.loaded: + bg = self.progress_bar_color + if context.vcsinfo: + fg = 116 + attr &= ~bold + if context.vcscommit: + fg = 144 + attr &= ~bold + + + if context.text: + if context.highlight: + attr |= reverse + + if context.in_taskview: + if context.title: + fg = 116 + + if context.selected: + attr |= reverse + + if context.loaded: + if context.selected: + fg = self.progress_bar_color + else: + bg = self.progress_bar_color + + + if context.vcsfile and not context.selected: + attr &= ~bold + if context.vcsconflict: + fg = 95 + elif context.vcschanged: + fg = 174 + elif context.vcsunknown: + fg = 174 + elif context.vcsstaged: + fg = 108 + elif context.vcssync: + fg = 108 + elif context.vcsignored: + fg = default + + elif context.vcsremote and not context.selected: + attr &= ~bold + if context.vcssync: + fg = 108 + elif context.vcsbehind: + fg = 174 + elif context.vcsahead: + fg = 116 + elif context.vcsdiverged: + fg = 95 + elif context.vcsunknown: + fg = 174 + + return fg, bg, attr diff --git a/ranger/rc.conf b/ranger/rc.conf new file mode 100644 index 0000000..83f2586 --- /dev/null +++ b/ranger/rc.conf @@ -0,0 +1,619 @@ +# =================================================================== +# This file contains the default startup commands for ranger. +# To change them, it is recommended to create the file +# ~/.config/ranger/rc.conf and add your custom commands there. +# +# If you copy this whole file there, you may want to set the environment +# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. +# +# The purpose of this file is mainly to define keybindings and settings. +# For running more complex python code, please create a plugin in "plugins/" or +# a command in "commands.py". +# +# Each line is a command that will be run before the user interface +# is initialized. As a result, you can not use commands which rely +# on the UI such as :delete or :mark. +# =================================================================== + +# =================================================================== +# == Options +# =================================================================== + +# Which viewmode should be used? Possible values are: +# miller: Use miller columns which show multiple levels of the hierarchy +# multipane: Midnight-commander like multipane view showing all tabs next +# to each other +set viewmode miller +#set viewmode multipane + +# How many columns are there, and what are their relative widths? +set column_ratios 1,3,4 + +# Which files should be hidden? (regular expression) +set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ + +# Show hidden files? You can toggle this by typing 'zh' +set show_hidden true + +# Ask for a confirmation when running the "delete" command? +# Valid values are "always", "never", "multiple" (default) +# With "multiple", ranger will ask only if you delete multiple files at once. +set confirm_on_delete never + +# Which script is used to generate file previews? +# ranger ships with scope.sh, a script that calls external programs (see +# README.md for dependencies) to preview images, archives, etc. +set preview_script ~/.config/ranger/scope.sh + +# Use the external preview script or display simple plain text or image previews? +set use_preview_script true + +# Automatically count files in the directory, even before entering them? +set automatically_count_files true + +# Open all images in this directory when running certain image viewers +# like feh or sxiv? You can still open selected files by marking them. +set open_all_images true + +# Be aware of version control systems and display information. +set vcs_aware false + +# State of the three backends git, hg, bzr. The possible states are +# disabled, local (only show local info), enabled (show local and remote +# information). +set vcs_backend_git enabled +set vcs_backend_hg disabled +set vcs_backend_bzr disabled + +# Use one of the supported image preview protocols +set preview_images true + +# Set the preview image method. Supported methods: +# +# * w3m (default): +# Preview images in full color with the external command "w3mimgpreview"? +# This requires the console web browser "w3m" and a supported terminal. +# It has been successfully tested with "xterm" and "urxvt" without tmux. +# +# * iterm2: +# Preview images in full color using iTerm2 image previews +# (http://iterm2.com/images.html). This requires using iTerm2 compiled +# with image preview support. +# +# * urxvt: +# Preview images in full color using urxvt image backgrounds. This +# requires using urxvt compiled with pixbuf support. +# +# * urxvt-full: +# The same as urxvt but utilizing not only the preview pane but the +# whole terminal window. +set preview_images_method w3m + +# Use a unicode "..." character to mark cut-off filenames? +set unicode_ellipsis false + +# Show dotfiles in the bookmark preview box? +set show_hidden_bookmarks true + +# Which colorscheme to use? These colorschemes are available by default: +# default, jungle, snow, solarized +set colorscheme zenburn + +# Preview files on the rightmost column? +# And collapse (shrink) the last column if there is nothing to preview? +set preview_files true +set preview_directories true +set collapse_preview true + +# Save the console history on exit? +set save_console_history true + +# Draw the status bar on top of the browser window (default: bottom) +set status_bar_on_top false + +# Draw a progress bar in the status bar which displays the average state of all +# currently running tasks which support progress bars? +set draw_progress_bar_in_status_bar true + +# Draw borders around columns? +set draw_borders true + +# Display the directory name in tabs? +set dirname_in_tabs false + +# Enable the mouse support? +set mouse_enabled true + +# Display the file size in the main column or status bar? +set display_size_in_main_column true +set display_size_in_status_bar true + +# Display files tags in all columns or only in main column? +set display_tags_in_all_columns true + +# Set a title for the window? +set update_title false + +# Set the title to "ranger" in the tmux program? +set update_tmux_title false + +# Shorten the title if it gets long? The number defines how many +# directories are displayed at once, 0 turns off this feature. +set shorten_title 3 + +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +set tilde_in_titlebar false + +# How many directory-changes or console-commands should be kept in history? +set max_history_size 20 +set max_console_history_size 50 + +# Try to keep so much space between the top/bottom border when scrolling: +set scroll_offset 8 + +# Flush the input after each key hit? (Noticeable when ranger lags) +set flushinput true + +# Padding on the right when there's no preview? +# This allows you to click into the space to run the file. +set padding_right true + +# Save bookmarks (used with mX and `X) instantly? +# This helps to synchronize bookmarks between multiple ranger +# instances but leads to *slight* performance loss. +# When false, bookmarks are saved when ranger is exited. +set autosave_bookmarks true + +# You can display the "real" cumulative size of directories by using the +# command :get_cumulative_size or typing "dc". The size is expensive to +# calculate and will not be updated automatically. You can choose +# to update it automatically though by turning on this option: +set autoupdate_cumulative_size false + +# Turning this on makes sense for screen readers: +set show_cursor false + +# One of: size, natural, basename, atime, ctime, mtime, type, random +set sort natural + +# Additional sorting options +set sort_reverse false +set sort_case_insensitive true +set sort_directories_first true +set sort_unicode false + +# Enable this if key combinations with the Alt Key don't work for you. +# (Especially on xterm) +set xterm_alt_key false + +# Whether to include bookmarks in cd command +set cd_bookmarks true + +# Avoid previewing files larger than this size, in bytes. Use a value of 0 to +# disable this feature. +set preview_max_size 0 + +# Add the highlighted file to the path in the titlebar +set show_selection_in_titlebar true + +# The delay that ranger idly waits for user input, in milliseconds, with a +# resolution of 100ms. Lower delay reduces lag between directory updates but +# increases CPU load. +set idle_delay 2000 + +# When the metadata manager module looks for metadata, should it only look for +# a ".metadata.json" file in the current directory, or do a deep search and +# check all directories above the current one as well? +set metadata_deep_search false + +# Clear all existing filters when leaving a directory +set clear_filters_on_dir_change false + +# Disable displaying line numbers in main column +set line_numbers false + +# =================================================================== +# == Local Options +# =================================================================== +# You can set local options that only affect a single directory. + +# Examples: +# setlocal path=~/downloads sort mtime + +# =================================================================== +# == Command Aliases in the Console +# =================================================================== + +alias e edit +alias q quit +alias q! quitall +alias qa quitall +alias qall quitall +alias setl setlocal + +alias filter scout -prt +alias find scout -aeit +alias mark scout -mr +alias unmark scout -Mr +alias search scout -rs +alias search_inc scout -rts +alias travel scout -aefiklst + +# =================================================================== +# == Define keys for the browser +# =================================================================== + +# Basic +map Q quit! +map q quit +copymap q ZZ ZQ + +map R reload_cwd +map reset +map redraw_window +map abort +map change_mode normal +map ~ set viewmode! + +map i display_file +map ? help +map W display_log +map w taskview_open +map S shell $SHELL + +map : console +map ; console +map ! console shell%space +map @ console -p6 shell %%s +map # console shell -p%space +map s console shell%space +map r chain draw_possible_programs; console open_with%%space +#map f console find%space +map f console scout -ftsea%space +map cd console cd%space + +# Change the line mode +map Mf linemode filename +map Mi linemode fileinfo +map Mm linemode mtime +map Mp linemode permissions +map Ms linemode sizemtime +map Mt linemode metatitle + +# Tagging / Marking +map t tag_toggle +map ut tag_remove +map " tag_toggle tag=%any +map mark_files toggle=True +map v mark_files all=True toggle=True +map uv mark_files all=True val=False +map V toggle_visual_mode +map uV toggle_visual_mode reverse=True + +# For the nostalgics: Midnight Commander bindings +map help +map display_file +map edit +map copy +map cut +map console mkdir%space +map console delete +map exit + +# In case you work on a keyboard with dvorak layout +map move up=1 +map move down=1 +map move left=1 +map move right=1 +map move to=0 +map move to=-1 +map move down=1 pages=True +map move up=1 pages=True +map move right=1 +map console delete +map console touch%space + +# VIM-like +copymap k +copymap j +copymap h +copymap l +copymap gg +copymap G +copymap +copymap + +map J move down=0.5 pages=True +map K move up=0.5 pages=True +copymap J +copymap K + +# Jumping around +map H history_go -1 +map L history_go 1 +map ] move_parent 1 +map [ move_parent -1 +map } traverse + +map gh cd ~ +map ge cd /etc +map gu cd /usr +map gd cd /dev +map gl cd -r . +map gL cd -r %f +map go cd /opt +map gv cd /var +map gm cd /media +map gM cd /mnt +map gs cd /srv +map gr cd / +map gR eval fm.cd(ranger.RANGERDIR) +map g/ cd / +map g? cd /usr/share/doc/ranger + +# External Programs +map E edit +map du shell -p du --max-depth=1 -h --apparent-size +map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh +map yp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b +map yd shell -f echo -n %d | xsel -i; xsel -o | xsel -i -b +map yn shell -f echo -n %f | xsel -i; xsel -o | xsel -i -b + +# Filesystem Operations +map = chmod + +#map cw console rename%space +map cw eval fm.execute_console("bulkrename") if fm.thisdir.marked_items else fm.open_console("rename ") +map a rename_append +map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) +map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) + +map pp paste +map po paste overwrite=True +map pP paste append=True +map pO paste overwrite=True append=True +map pl paste_symlink relative=False +map pL paste_symlink relative=True +map phl paste_hardlink +map pht paste_hardlinked_subtree +map pr paste_as_root + +map dD console delete + +map dd cut +map ud uncut +map da cut mode=add +map dr cut mode=remove +map dt cut mode=toggle + +map yy copy +map uy uncut +map ya copy mode=add +map yr copy mode=remove +map yt copy mode=toggle + +# Temporary workarounds +map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) +map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) +map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) +map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) +map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) +map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) +map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) +map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) + +# Searching +map / console search%space +map n search_next +map N search_next forward=False +map ct search_next order=tag +map cs search_next order=size +map ci search_next order=mimetype +map cc search_next order=ctime +map cm search_next order=mtime +map ca search_next order=atime + +# Tabs +map tab_new ~ +map tab_close +map tab_move 1 +map tab_move -1 +map tab_move 1 +map tab_move -1 +map gt tab_move 1 +map gT tab_move -1 +map gn tab_new ~ +map gc tab_close +map uq tab_restore +map tab_open 1 +map tab_open 2 +map tab_open 3 +map tab_open 4 +map tab_open 5 +map tab_open 6 +map tab_open 7 +map tab_open 8 +map tab_open 9 + +# Sorting +map or set sort_reverse! +map oz set sort=random +map os chain set sort=size; set sort_reverse=False +map ob chain set sort=basename; set sort_reverse=False +map on chain set sort=natural; set sort_reverse=False +map om chain set sort=mtime; set sort_reverse=False +map oc chain set sort=ctime; set sort_reverse=False +map oa chain set sort=atime; set sort_reverse=False +map ot chain set sort=type; set sort_reverse=False +map oe chain set sort=extension; set sort_reverse=False + +map oS chain set sort=size; set sort_reverse=True +map oB chain set sort=basename; set sort_reverse=True +map oN chain set sort=natural; set sort_reverse=True +map oM chain set sort=mtime; set sort_reverse=True +map oC chain set sort=ctime; set sort_reverse=True +map oA chain set sort=atime; set sort_reverse=True +map oT chain set sort=type; set sort_reverse=True +map oE chain set sort=extension; set sort_reverse=True + +map dc get_cumulative_size + +# Settings +map zc set collapse_preview! +map zd set sort_directories_first! +map zh set show_hidden! +map set show_hidden! +map zI set flushinput! +map zi set preview_images! +map zm set mouse_enabled! +map zp set preview_files! +map zP set preview_directories! +map zs set sort_case_insensitive! +map zu set autoupdate_cumulative_size! +map zv set use_preview_script! +map zf console filter%space + +# Bookmarks +map ` enter_bookmark %any +map ' enter_bookmark %any +map m set_bookmark %any +map um unset_bookmark %any + +map m draw_bookmarks +copymap m um ` ' + +# Generate all the chmod bindings with some python help: +eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) + +eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) + +# =================================================================== +# == Define keys for the console +# =================================================================== +# Note: Unmapped keys are passed directly to the console. + +# Basic +cmap eval fm.ui.console.tab() +cmap eval fm.ui.console.tab(-1) +cmap eval fm.ui.console.close() +cmap eval fm.ui.console.execute() +cmap redraw_window + +copycmap +copycmap + +# Move around +cmap eval fm.ui.console.history_move(-1) +cmap eval fm.ui.console.history_move(1) +cmap eval fm.ui.console.move(left=1) +cmap eval fm.ui.console.move(right=1) +cmap eval fm.ui.console.move(right=0, absolute=True) +cmap eval fm.ui.console.move(right=-1, absolute=True) +cmap eval fm.ui.console.move_word(left=1) +cmap eval fm.ui.console.move_word(right=1) + +# Line Editing +cmap eval fm.ui.console.delete(-1) +cmap eval fm.ui.console.delete(0) +cmap eval fm.ui.console.delete_word() +cmap eval fm.ui.console.delete_word(backward=False) +cmap eval fm.ui.console.delete_rest(1) +cmap eval fm.ui.console.delete_rest(-1) +cmap eval fm.ui.console.paste() + +# And of course the emacs way +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap + +# Note: There are multiple ways to express backspaces. (code 263) +# and (code 127). To be sure, use both. +copycmap + +# This special expression allows typing in numerals: +cmap false + +# =================================================================== +# == Pager Keybindings +# =================================================================== + +# Movement +pmap pager_move down=1 +pmap pager_move up=1 +pmap pager_move left=4 +pmap pager_move right=4 +pmap pager_move to=0 +pmap pager_move to=-1 +pmap pager_move down=1.0 pages=True +pmap pager_move up=1.0 pages=True +pmap pager_move down=0.5 pages=True +pmap pager_move up=0.5 pages=True + +copypmap k +copypmap j +copypmap h +copypmap l +copypmap g +copypmap G +copypmap d +copypmap u +copypmap n f +copypmap p b + +# Basic +pmap redraw_window +pmap pager_close +copypmap q Q i +pmap E edit_file + +# =================================================================== +# == Taskview Keybindings +# =================================================================== + +# Movement +tmap taskview_move up=1 +tmap taskview_move down=1 +tmap taskview_move to=0 +tmap taskview_move to=-1 +tmap taskview_move down=1.0 pages=True +tmap taskview_move up=1.0 pages=True +tmap taskview_move down=0.5 pages=True +tmap taskview_move up=0.5 pages=True + +copytmap k +copytmap j +copytmap g +copytmap G +copytmap u +copytmap n f +copytmap p b + +# Changing priority and deleting tasks +tmap J eval -q fm.ui.taskview.task_move(-1) +tmap K eval -q fm.ui.taskview.task_move(0) +tmap dd eval -q fm.ui.taskview.task_remove() +tmap eval -q fm.ui.taskview.task_move(-1) +tmap eval -q fm.ui.taskview.task_move(0) +tmap eval -q fm.ui.taskview.task_remove() + +# Basic +tmap redraw_window +tmap taskview_close +copytmap q Q w +default_linemode devicons + +# find +map fzf_select diff --git a/root/.bashrc b/root/.bashrc new file mode 100644 index 0000000..9c8fbbd --- /dev/null +++ b/root/.bashrc @@ -0,0 +1,142 @@ +# +# ~/.bashrc +# + +[[ $- != *i* ]] && return + +colors() { + local fgc bgc vals seq0 + + printf "Color escapes are %s\n" '\e[${value};...;${value}m' + printf "Values 30..37 are \e[33mforeground colors\e[m\n" + printf "Values 40..47 are \e[43mbackground colors\e[m\n" + printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n" + + # foreground colors + for fgc in {30..37}; do + # background colors + for bgc in {40..47}; do + fgc=${fgc#37} # white + bgc=${bgc#40} # black + + vals="${fgc:+$fgc;}${bgc}" + vals=${vals%%;} + + seq0="${vals:+\e[${vals}m}" + printf " %-9s" "${seq0:-(default)}" + printf " ${seq0}TEXT\e[m" + printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m" + done + echo; echo + done +} + +[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion + +# Change the window title of X terminals +case ${TERM} in + xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*) + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' + ;; + screen*) + PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' + ;; +esac + +use_color=true + +# Set colorful PS1 only on colorful terminals. +# dircolors --print-database uses its own built-in database +# instead of using /etc/DIR_COLORS. Try to use the external file +# first to take advantage of user additions. Use internal bash +# globbing instead of external grep binary. +safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM +match_lhs="" +[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" +[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null \ + && match_lhs=$(dircolors --print-database) +[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true + +if ${use_color} ; then + # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 + if type -P dircolors >/dev/null ; then + if [[ -f ~/.dir_colors ]] ; then + eval $(dircolors -b ~/.dir_colors) + elif [[ -f /etc/DIR_COLORS ]] ; then + eval $(dircolors -b /etc/DIR_COLORS) + fi + fi + + if [[ ${EUID} == 0 ]] ; then + PS1='\[\033[01;31m\]\w\[\033[01;31m\] [\t] \$\[\033[00m\] ' + else + PS1='\[\033[01;32m\]\w\[\033[01;32m\] [\t] \$\[\033[00m\] ' + fi + + alias ls='ls --color=auto' + alias grep='grep --colour=auto' + alias egrep='egrep --colour=auto' + alias fgrep='fgrep --colour=auto' +else + if [[ ${EUID} == 0 ]] ; then + # show root@ when we don't have colors + PS1='\u@\h \w [\t] \$ ' + else + PS1='\u@\h \w [\t] \$ ' + fi +fi + +unset use_color safe_term match_lhs sh + +alias cp="cp -i" # confirm before overwriting something +alias df='df -h' # human-readable sizes +alias free='free -m' # show sizes in MB +alias np='nano -w PKGBUILD' +alias more=less + +xhost +local:root > /dev/null 2>&1 + +complete -cf sudo + +# Bash won't get SIGWINCH if another process is in the foreground. +# Enable checkwinsize so that bash will check the terminal size when +# it regains control. #65623 +# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) +shopt -s checkwinsize + +shopt -s expand_aliases + +# export QT_SELECT=4 + +# Enable history appending instead of overwriting. #139609 +shopt -s histappend + +# +# # ex - archive extractor +# # usage: ex +ex () +{ + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1;; + *.7z) 7z x $1 ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + +[ -f ~/.fzf.bash ] && source ~/.fzf.bash + diff --git a/root/.gitconfig b/root/.gitconfig new file mode 100644 index 0000000..00d9860 --- /dev/null +++ b/root/.gitconfig @@ -0,0 +1,7 @@ +[core] + autocrlf = input + fileMode = false + pager = diff-so-fancy | less --tabs=4 -RFX +[user] + name = Henrik Bakken + email = bakken.henrik@gmail.com diff --git a/root/.profile b/root/.profile new file mode 100644 index 0000000..d288c6a --- /dev/null +++ b/root/.profile @@ -0,0 +1,14 @@ +export VISUAL=/usr/bin/nvim +export EDITOR=/usr/bin/nvim +export BROWSER=/usr/bin/chromium +export QT_QPA_PLATFORMTHEME="qt5ct" +export GTK2_RC_FILES="$HOME/.gtkrc-2.0" + +# cuda stuff +export CUDA_HOME=/opt/cuda +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64 +PATH=${CUDA_HOME}/bin:${PATH} +export PATH + +# MKL AMD fix +export MKL_DEBUG_CPU_TYPE=5 diff --git a/root/.tmux.conf b/root/.tmux.conf new file mode 100644 index 0000000..eae9eec --- /dev/null +++ b/root/.tmux.conf @@ -0,0 +1,182 @@ +###################### +### SETTINGS ### +###################### +# loud or quiet? +set -g visual-activity off +set -g visual-bell off +set -g visual-silence off +setw -g monitor-activity off +set -g bell-action none + +# enable vi mode keys +setw -g mode-keys vi + +# mouse control (clickable windows, panes, resizable panes) +setw -g mouse on +set -g mouse on + +# clipboard control +set -g set-clipboard on +set -g history-limit 20000 + +# screen colors +set -g default-terminal "tmux-256color" + +# Start with index 1 +set -g base-index 1 +setw -g pane-base-index 1 + +# Automatically set window title +set-window-option -g automatic-rename on +set-option -g set-titles on + +###################### +### KEYBINDS ### +###################### +# Config that is very close to a i3 window manager's keybinding. + +# Set new prefix +# Note : you can press super key by set M. +# (tested with tty only) +set -g prefix C-a +bind C-a send-prefix + +# First remove *all* keybindings +unbind -a + +# Basic bindings +bind ? list-keys +bind d detach-client +bind D choose-client +bind : command-prompt +#bind \ show-messages + +# Copy mode +bind c copy-mode + +# clipboard control +bind P paste-buffer +bind -T copy-mode-vi v send-keys -X begin-selection +bind -T copy-mode-vi y send-keys -X copy-selection +bind -T copy-mode-vi r send-keys -X rectangle-toggle +bind y run-shell -b "tmux show-buffer | xclip -sel clip" \; display-message "Copied tmux buffer to system clipboard" + +# Refresh client +bind R refresh-client \; display-message "Refresh already" + +# Rename window +bind , command-prompt "rename-window %%" + +# Clock mode +bind t clock-mode + +# Show pane info +bind i display-panes + +# Config Reloads +bind r source-file ~/.tmux.conf \; display-message "Config reloaded" + +# resize controls +bind -r h resize-pane -L 2 \; display-message "Resize left" +bind -r l resize-pane -R 2 \; display-message "Resize right" +bind -r k resize-pane -U 2 \; display-message "Resize up" +bind -r j resize-pane -D 2 \; display-message "Resize down" + +# zoom control +bind -n M-f resize-pane -Z + +# split panes using | and -, make sure they open in the same path +bind | split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_current_path}" + +# Change layouts +bind o rotate-window +bind Space next-layout +bind K swap-pane -s {up-of} +bind J swap-pane -s {down-of} +bind H swap-pane -s {left-of} +bind L swap-pane -s {right-of} + +# Choose Window +bind w choose-window + +# Change current pane to next window +bind 1 join-pane -t :1 +bind 2 join-pane -t :2 +bind 3 join-pane -t :3 +bind 4 join-pane -t :4 +bind 5 join-pane -t :5 +bind 6 join-pane -t :6 +bind 7 join-pane -t :7 +bind 8 join-pane -t :8 +bind 9 join-pane -t :9 +bind 0 join-pane -t :10 + +# Switch windows alt+number +bind -n M-1 if-shell 'tmux select-window -t :1' '' 'new-window -t :1' +bind -n M-2 if-shell 'tmux select-window -t :2' '' 'new-window -t :2' +bind -n M-3 if-shell 'tmux select-window -t :3' '' 'new-window -t :3' +bind -n M-4 if-shell 'tmux select-window -t :4' '' 'new-window -t :4' +bind -n M-5 if-shell 'tmux select-window -t :5' '' 'new-window -t :5' +bind -n M-6 if-shell 'tmux select-window -t :6' '' 'new-window -t :6' +bind -n M-7 if-shell 'tmux select-window -t :7' '' 'new-window -t :7' +bind -n M-8 if-shell 'tmux select-window -t :8' '' 'new-window -t :8' +bind -n M-9 if-shell 'tmux select-window -t :9' '' 'new-window -t :9' +bind -n M-0 if-shell 'tmux select-window -t :10' '' 'new-window -t :10' + +# Kill Selected Pane +bind Q kill-pane + +# present a menu of URLs to open from the visible pane. sweet. +bind u capture-pane \;\ + save-buffer /tmp/tmux-buffer \;\ + split-window -l 10 "urlview /tmp/tmux-buffer" + +# Smart pane switching with awareness of Vim splits. +# See: https://github.com/christoomey/vim-tmux-navigator +is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ + | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" +bind-key -n M-h if-shell "$is_vim" "send-keys M-h" "select-pane -L" +bind-key -n M-j if-shell "$is_vim" "send-keys M-j" "select-pane -D" +bind-key -n M-k if-shell "$is_vim" "send-keys M-k" "select-pane -U" +bind-key -n M-l if-shell "$is_vim" "send-keys M-l" "select-pane -R" +#bind-key -n M-\ if-shell "$is_vim" "send-keys M-\\" "select-pane -l" +bind-key -T copy-mode-vi M-h select-pane -L +bind-key -T copy-mode-vi M-j select-pane -D +bind-key -T copy-mode-vi M-k select-pane -U +bind-key -T copy-mode-vi M-l select-pane -R +#bind-key -T copy-mode-vi M-\ select-pane -l + +# fzf binding +set -g @tmux-fzf-launch-key 'f' + +###################### +### DESIGN CHANGES ### +###################### + +# various plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'sainnhe/tmux-fzf' +# note: fzf bound to 'F' +set -g @plugin 'odedlaz/tmux-onedark-theme' + +# solarized plugin and options +# set -g @plugin 'seebi/tmux-colors-solarized' +# set -g @colors-solarized '256' (the default) +# set -g @colors-solarized 'dark' +# set -g @colors-solarized 'light' +# set -g @colors-solarized 'base16' + +# tmux themepack +# set -g @plugin 'jimeh/tmux-themepack' +# set -g @themepack 'basic' +# set -g @themepack 'powerline/default/yellow' +# set -g @themepack 'powerline/default/orange' +# set -g @themepack 'powerline/block/blue' +# set -g @themepack 'powerline/block/cyan' +# set -g @themepack 'powerline/default/gray' +# set -g @themepack 'powerline/double/yellow' + +# keep at bottom +run -b '~/.tmux/plugins/tpm/tpm' diff --git a/root/.xinitrc b/root/.xinitrc new file mode 100644 index 0000000..1c510bc --- /dev/null +++ b/root/.xinitrc @@ -0,0 +1,66 @@ +#!/bin/sh +# +# ~/.xinitrc +# +# Executed by startx (run your window manager from here) + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +DEFAULT_SESSION='i3 --shmlog-size 0' + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" +fi + +# start some nice programs + +if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +get_session(){ + local dbus_args=(--sh-syntax --exit-with-session) + case $1 in + awesome) dbus_args+=(awesome) ;; + bspwm) dbus_args+=(bspwm-session) ;; + budgie) dbus_args+=(budgie-desktop) ;; + cinnamon) dbus_args+=(cinnamon-session) ;; + deepin) dbus_args+=(startdde) ;; + enlightenment) dbus_args+=(enlightenment_start) ;; + fluxbox) dbus_args+=(startfluxbox) ;; + gnome) dbus_args+=(gnome-session) ;; + i3|i3wm) dbus_args+=(i3 --shmlog-size 0) ;; + jwm) dbus_args+=(jwm) ;; + kde) dbus_args+=(startkde) ;; + lxde) dbus_args+=(startlxde) ;; + lxqt) dbus_args+=(lxqt-session) ;; + mate) dbus_args+=(mate-session) ;; + xfce) dbus_args+=(xfce4-session) ;; + openbox) dbus_args+=(openbox-session) ;; + *) dbus_args+=($DEFAULT_SESSION) ;; + esac + + echo "dbus-launch ${dbus_args[*]}" +} + +exec $(get_session) diff --git a/root/.zprofile b/root/.zprofile new file mode 100644 index 0000000..d288c6a --- /dev/null +++ b/root/.zprofile @@ -0,0 +1,14 @@ +export VISUAL=/usr/bin/nvim +export EDITOR=/usr/bin/nvim +export BROWSER=/usr/bin/chromium +export QT_QPA_PLATFORMTHEME="qt5ct" +export GTK2_RC_FILES="$HOME/.gtkrc-2.0" + +# cuda stuff +export CUDA_HOME=/opt/cuda +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64 +PATH=${CUDA_HOME}/bin:${PATH} +export PATH + +# MKL AMD fix +export MKL_DEBUG_CPU_TYPE=5 diff --git a/root/.zshrc b/root/.zshrc new file mode 100644 index 0000000..73769f0 --- /dev/null +++ b/root/.zshrc @@ -0,0 +1,44 @@ +# Lines configured by zsh-newuser-install +HISTFILE=~/.zhistory +HISTSIZE=10000 +SAVEHIST=10000 +setopt nomatch +unsetopt autocd +bindkey -v +# End of lines configured by zsh-newuser-install +# The following lines were added by compinstall +zstyle :compinstall filename '/home/hjalmarlucius/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +# more history stuff +REPORTTIME=3 # Report command running time if it is more than 3 seconds +setopt INC_APPEND_HISTORY # Add commands to history as they are entered, don't wait for shell to exit +setopt EXTENDED_HISTORY # Also remember command start time and duration +setopt HIST_IGNORE_ALL_DUPS # Do not keep duplicate commands in history +setopt HIST_IGNORE_SPACE # Do not remember commands that start with a whitespace + +# default ls settings +alias ls='ls -hat --group-directories-first' +ls --color=auto &> /dev/null && alias ls='ls --color=auto' +export CLICOLOR=1 + +# fuzzy find +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh +bindkey '^y' fzf-cd-widget + +# configure custom command prompt +_setup_ps1() { + GLYPH="▲" + [ "x$KEYMAP" = "xvicmd" ] && GLYPH="▼" + PS1="%F{red}[%F{cyan}%*%F{red}] %(?.%F{cyan}.%F{red})$GLYPH%f %(1j.%F{cyan}[%j]%f .)%F{cyan}%~%f %(!.%F{red}#%f .)" +} +_setup_ps1 + +# Base16 Shell +BASE16_SHELL="$HOME/.config/base16-shell/" +[ -n "$PS1" ] && \ + [ -s "$BASE16_SHELL/profile_helper.sh" ] && \ + eval "$("$BASE16_SHELL/profile_helper.sh")" diff --git a/zathurarc b/zathurarc new file mode 100644 index 0000000..81e4ea9 --- /dev/null +++ b/zathurarc @@ -0,0 +1,60 @@ +# zathurarc + +# settings +set window-height 1024 +set window-width 768 +set adjust-open width +# set show-scrollbars true +set first-page-column 2 +set window-title-basename true +# set database sqlite +set recolor-keephue +set selection-clipboard clipboard +# various hb +set recolor +set font "Fixed 12" +set inputbar-fg "#222222" + + +# key bindings +# map abort # Still doesn't work :( +map [normal] toggle_fullscreen +map [fullscreen] toggle_fullscreen +map [normal] reload +map [fullscreen] reload + +map [normal] e scroll down +map [fullscreen] e scroll down +map [normal] scroll down +map [fullscreen] scroll down +map [normal] y scroll up +map [fullscreen] y scroll up +map [normal] scroll up +map [fullscreen] scroll up +map [normal] R rotate rotate-ccw +map [fullscreen] R rotate rotate-ccw + +map [normal] navigate previous +map [fullscreen] navigate previous +map [normal] navigate next +map [fullscreen] navigate next + +map [normal] set "first-page-column 1:1" +map [fullscreen] set "first-page-column 1:1" +map [normal] set "first-page-column 1:2" +map [fullscreen] set "first-page-column 1:2" + +# Why are these only defined for normal mode by default? +map [fullscreen] a adjust_window best-fit +map [fullscreen] s adjust_window width +map [fullscreen] f follow +map [fullscreen] d toggle_page_mode 2 +map [fullscreen] toggle_index +map [fullscreen] j scroll down +map [fullscreen] k scroll up +map [fullscreen] scroll half-down +map [fullscreen] scroll half-up +map [fullscreen] jumplist backward +map [fullscreen] jumplist forward + +map [index] q quit