diff --git a/users/pbsds/home/default.nix b/users/pbsds/home/default.nix index b9057fd..59623bd 100644 --- a/users/pbsds/home/default.nix +++ b/users/pbsds/home/default.nix @@ -132,8 +132,6 @@ #bin = "perl -pe 'chomp' | curl -is -X POST https://i.kuklef.se/upload -F content=@- -F expiration=10d | grep '^location:' | cut -d' ' -f2-"; bin = "python -c 'import sys; sys.stdout.write(sys.stdin.read().strip())' | curl -is -X POST https://i.kuklef.se/upload -F content=@- -F expiration=10d | grep '^location:' | cut -d' ' -f2-"; - #atom = "atom --no-sandbox"; - atom = "atom --disable-gpu --in-process-gpu --no-sandbox"; }; programs.nix-index.enable = true; diff --git a/users/pbsds/home/profiles/desktop.nix b/users/pbsds/home/profiles/desktop.nix index ce4d015..3accb7e 100644 --- a/users/pbsds/home/profiles/desktop.nix +++ b/users/pbsds/home/profiles/desktop.nix @@ -4,6 +4,7 @@ imports = [ ./lxterminal + ./pulsar ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ @@ -13,10 +14,6 @@ ]; home.packages = with pkgs; [ - atom # TODO: config - pulsar # TODO: config, transition into this - # TODO: nodePackages.bash-language-server - # TODO: python-lsp-server, somehow discord element-desktop#-wayland diff --git a/users/pbsds/home/profiles/pulsar/config.cson b/users/pbsds/home/profiles/pulsar/config.cson new file mode 100644 index 0000000..6f15a3f --- /dev/null +++ b/users/pbsds/home/profiles/pulsar/config.cson @@ -0,0 +1,205 @@ +"*": + "atom-ide-code-format": + formatOnSave: false + "atom-ide-outline": + foldInitially: true + initialDisplay: false + "atom-typescript": + allowJS: true + ignoredDiagnosticCodes: [ + "8002" + "8003" + "8004" + "8006" + "8008" + "8010" + ] + jsSyntaxScopes: [ + "source.js" + "source.jsx" + "javascript" + "source.flow" + ] + "autocomplete-plus": {} + "bracket-matcher": + autocompleteBrackets: false + "copy-highlighted": + style: "railscasts" + "copy-with-style": + preset1: {} + core: + allowPendingPaneItems: false + autoHideMenuBar: true + disabledPackages: [ + "language-python" + "markdown-preview" + "linter-clang" + "linter-python-pep8" + "language-gfm" + ] + ignoredNames: [ + ".git" + ".hg" + ".svn" + ".DS_Store" + "._*" + "Thumbs.db" + "desktop.ini" + "__pycache__" + ] + packagesWithKeymapsDisabled: [ + "atom-ide-code-format" + ] + restorePreviousWindowsOnStart: "no" + telemetryConsent: "no" + themes: [ + "one-dark-ui" + "railscast-theme-markup" + ] + editor: + fontSize: 18 + invisibles: {} + scrollPastEnd: true + tabLength: 4 + "exception-reporting": + userId: "c8877d6e-54df-44f2-bb95-b02e63ceaa6b" + fonts: + fontFamily: "Cousine" + "graphviz-preview-plus": {} + "ide-python": + pylsPlugins: + autopep8: + enabled: false + flake8: + ignore: [ + "E121" + "E123" + "E126" + "E226" + "E24" + "E704" + "W503" + "W504" + "E302" + "E306" + "E128" + "E221" + ] + maxLineLength: 119 + jedi_definition: + follow_imports: true + preload: {} + pycodestyle: + enabled: false + ignore: [ + "E121" + "E123" + "E126" + "E226" + "E24" + "E704" + "W503" + "E302" + "E306" + "E128" + "E221" + ] + maxLineLength: 119 + jumpy: {} + kite: + showWelcomeNotificationOnStartup: false + "linter-ui-default": {} + "markdown-preview-enhanced": + breakOnSingleNewLine: false + enableLinkify: false + enableWikiLinkSyntax: false + mathRenderingOnlineService: "https://latex.codecogs.com/svg.latex" + pandocArguments: "--filter=pandoc-codeblock-include, --filter=pandoc-imagine" + pandocMarkdownFlavor: "markdown-raw_tex+tex_math_single_backslash+emoji" + usePandocParser: true + "markdown-preview-plus": + markdownItConfig: + useLazyHeaders: false + mathConfig: {} + pandocConfig: + pandocArguments: [ + "--defaults=defaults.yaml" + "--webtex=https://latex.codecogs.com/svg.latex?" + ] + pandocMarkdownFlavor: "markdown-raw_tex+tex_math_single_backslash+emoji" + pandocRemoveReferences: false + useNativePandocCodeStyles: true + previewConfig: + activatePreviewWithEditor: true + renderer: "pandoc" + saveConfig: + saveToPDFOptions: {} + style: "github" + syncConfig: {} + "one-dark-ui": + fontSize: 11 + pigments: + mergeColorDuplicates: true + "spell-check": + grammars: [ + "source.asciidoc" + "source.gfm" + "text.git-commit" + "text.plain" + "text.plain.null-grammar" + "source.rst" + "text.restructuredtext" + "text.md" + ] + knownWords: [ + "equivariant" + "isosurface" + "discretization" + "voxel" + "SIREN" + "SIRENs" + "Zernike" + ] + locales: [ + "en_US" + ] + "status-bar": {} + "tree-view": + hideIgnoredNames: true + hideVcsIgnoredFiles: true + welcome: + showOnStartup: false + whitespace: {} + wordcount: + alwaysOn: true + ignorecode: true + ignorecomments: true + showchars: false +".basic.html.text": + editor: + tabLength: 2 +".css.less.source": + editor: + tabLength: 2 +".dg.source": + editor: + tabType: "soft" +".html.jinja.text": + editor: + tabLength: 2 +".jinja.source.yaml": + editor: + tabLength: 2 +".md.text": + editor: + softWrapAtPreferredLineLength: false + tabLength: 2 +".nix.source": + editor: + tabLength: 2 +".scala.source": + editor: + tabLength: 2 +".source.yaml": + editor: + tabLength: 2 diff --git a/users/pbsds/home/profiles/pulsar/default.nix b/users/pbsds/home/profiles/pulsar/default.nix new file mode 100644 index 0000000..49d8945 --- /dev/null +++ b/users/pbsds/home/profiles/pulsar/default.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }: +{ + #home.shellAliases.atom = "atom --no-sandbox"; + #home.shellAliases.atom = "atom --disable-gpu --in-process-gpu --no-sandbox"; + home.shellAliases.atom = "pulsar"; + + home.packages = with pkgs; [ + #atom + pulsar + + nodePackages.bash-language-server + # TODO: ensure python-lsp-server? + + ]; + + home.file.".pulsar/config.cson".source = ./config.cson; + home.file.".pulsar/keymap.cson".source = ./keymap.cson; + home.file.".pulsar/snippets.cson".source = ./snippets.cson; +} diff --git a/users/pbsds/home/profiles/pulsar/keymap.cson b/users/pbsds/home/profiles/pulsar/keymap.cson new file mode 100644 index 0000000..d8b615d --- /dev/null +++ b/users/pbsds/home/profiles/pulsar/keymap.cson @@ -0,0 +1,71 @@ +# Your keymap +# +# Atom keymaps work similarly to style sheets. Just as style sheets use +# selectors to apply styles to elements, Atom keymaps use selectors to associate +# keystrokes with events in specific contexts. Unlike style sheets however, +# each selector can only be declared once. +# +# You can create a new keybinding in this file by typing "key" and then hitting +# tab. +# +# Here's an example taken from Atom's built-in keymap: +# +# 'atom-text-editor': +# 'enter': 'editor:newline' +# +# 'atom-workspace': +# 'ctrl-shift-p': 'core:move-up' +# 'ctrl-p': 'core:move-down' +# +# You can find more information about keymaps in these guides: +# * http://flight-manual.atom.io/using-atom/sections/basic-customization/#_customizing_keybindings +# * http://flight-manual.atom.io/behind-atom/sections/keymaps-in-depth/ +# +# If you're having trouble with your keybindings not working, try the +# Keybinding Resolver: `Cmd+.` on macOS and `Ctrl+.` on other platforms. See the +# Debugging Guide for more information: +# * http://flight-manual.atom.io/hacking-atom/sections/debugging/#check-the-keybindings +# +# This file uses CoffeeScript Object Notation (CSON). +# If you are unfamiliar with CSON, you can read more about it in the +# Atom Flight Manual: +# http://flight-manual.atom.io/using-atom/sections/basic-customization/#_cson + +'atom-text-editor': + #'ctrl-w': 'editor:select-word' + 'alt-shift-d': 'editor:split-selections-into-lines' + 'alt-d': 'find-and-replace:select-next' + 'ctrl-d': 'editor:duplicate-lines' + 'ctrl-shift-D': 'editor:delete-line' + 'ctrl-l': "editor:unfold-current-row" + 'ctrl-ΓΈ': "editor:fold-current-row" + 'alt-g': 'atomic-rtags:follow' + 'alt-.': 'pane:show-next-item' + 'alt-,': 'pane:show-previous-item' + 'ctrl-m': 'markdown-preview-plus:sync-preview' + 'ctrl-enter': 'atom-ide-go-to-definition:go-to-definition' + 'ctrl-alt': 'unset!'# 'datatip:toggle' + 'alt-shift': 'datatip:toggle' +'body': + 'alt-right': 'pane:show-next-item' + 'alt-left': 'pane:show-previous-item' + 'alt-.': 'pane:show-next-item' + 'alt-,': 'pane:show-previous-item' + 'ctrl-tab ^ctrl': 'unset!' + 'ctrl-tab': 'pane:show-next-item' + 'ctrl-shift-tab ^ctrl': 'unset!' + 'ctrl-shift-tab': 'pane:show-previous-item' + #'ctrl-w': 'unset!' + #'ctrl-q': 'core:close' + 'ctrl-q': 'unset!' + 'ctrl-k ctrl-n': 'status-bar:toggle' +'atom-workspace': + #'ctrl-k ctrl-m': 'diagnostics:toggle-table' + #'ctrl-k ctrl-,': 'outline:toggle' + 'ctrl-k ctrl-m': 'window:toggle-bottom-dock' + 'ctrl-k ctrl-,': 'window:toggle-right-dock' +'atom-workspace atom-text-editor:not([mini])': + 'ctrl-up': 'unset!' + 'ctrl-down': 'unset!' + 'alt-up': 'editor:move-line-up' + 'alt-down': 'editor:move-line-down' diff --git a/users/pbsds/home/profiles/pulsar/snippets.cson b/users/pbsds/home/profiles/pulsar/snippets.cson new file mode 100644 index 0000000..cc1203a --- /dev/null +++ b/users/pbsds/home/profiles/pulsar/snippets.cson @@ -0,0 +1,75 @@ +'.text.md': + 'Comment': + 'prefix': 'comment' + 'body': '$0' + 'Todo': + 'prefix': 'todo' + 'body': '$0' + 'Div': + 'prefix': 'div' + 'body': '
\n$3\n
$0' + 'Equation': + 'prefix': 'eq' + 'body': '\\$\\$ $1\n\\$\\$${3: \\{#eq:${2:TODOs}\\}}$0' + 'AlignedEquation': + 'prefix': 'eqs' + 'body': '\\$\\$ \\\\begin\\{aligned\\}\n\t\\\\\\\\ ${1:a &= b} \n\t\\\\\\\\ ${2:c &= d}\n\\\\end\\{aligned\\} \\$\\$${4: \\{#eq:${3:TODO}\\}}$0' + 'EquationSolve': + 'prefix': 'eqso' + 'body': '\\$\\$ \\\\begin\\{aligned\\}\n\t${1:a}\n\t\t&= ${2:b} \\\\\\\\\n\\\\end\\{aligned\\} \\$\\$${4: \\{#eq:${3:TODO}\\}}$0' + 'Fraction': + 'prefix': 'fr' + 'body': '\\\\frac\\{$1\\}\\{$2\\}$0' + 'LeftRight': + 'prefix': 'lr' + 'body': '\\\\left${1: \\\\right}$0' + 'LeftRightAngle': + 'prefix': 'lra' + 'body': '\\\\left\\\\langle $1 \\\\right\\\\rangle$0' +# 'Superscript': +# 'prefix': '^' +# 'body': '^\\{$1\\}$0' + 'smallcaps': + 'prefix': 'sm' + 'body': '[$1]{.smallcaps}$0' + 'bold': + 'prefix': 'bf' + 'body': '**$1**$0' + 'italic': + 'prefix': 'it' + 'body': '*$1*$0' + 'monospace': + 'prefix': 'ms' + 'body': '`$1`$0' +'.text.html': + 'ClassSpan': + 'prefix': 'span' + 'body': '$2$0' +'.source.jinja, .text.html.jinja, .text.generic-config.jinja, .source.python.jinja, .source.shell.jinja, .text.xml.jinja, .source.yaml.jinja': + 'Comment': + 'prefix': 'comment' + 'body': '{# $0 #}' + 'Complete Comment': + 'prefix': '{#' + 'body': '{# $0 #}' + 'Do': + 'prefix': 'do' + 'body': '{% do ${1:expr} %}{# requires jinja2.ext.do #}' + 'Continue': + 'prefix': 'continue' + 'body': '{% continue %}{# requires jinja2.ext.loopcontrols #}' + 'Break': + 'prefix': 'break' + 'body': '{% break %}{# requires jinja2.ext.loopcontrols #}' + 'Autoescape': + 'prefix': 'autoescape' + 'body': '{% autoescape ${1:false} %}\n$2\n{% endautoescape %}$0' + 'Todo': + 'prefix': 'todo' + 'body': '{# TODO: ${1:message} #}' + 'Block': + 'prefix': 'block' + 'body': '{% block ${1:name} %}\n\t$2\n{% endblock %}{# ${1:name} #}' + 'Set': + 'prefix': 'set' + 'body': '{% set ${1:var} = ${2:expr} %}'