From 627df967914116a44004144362e96705576f91b1 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:49:46 +0100 Subject: [PATCH 01/15] Add text editor configurations --- modules/coding/default.nix | 4 ++++ modules/coding/nvim.nix | 30 ++++++++++++++++++++++++++++ modules/coding/vscode.nix | 41 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 modules/coding/default.nix create mode 100644 modules/coding/nvim.nix create mode 100644 modules/coding/vscode.nix diff --git a/modules/coding/default.nix b/modules/coding/default.nix new file mode 100644 index 0000000..f3fd287 --- /dev/null +++ b/modules/coding/default.nix @@ -0,0 +1,4 @@ +[ + ./nvim.nix + ./vscode.nix +] diff --git a/modules/coding/nvim.nix b/modules/coding/nvim.nix new file mode 100644 index 0000000..657abdc --- /dev/null +++ b/modules/coding/nvim.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + pkgs, + vars, + ... +}: let +in { + home-manager.users.${vars.user} = { + home.file.".config/nvim/lua/custom/" = { + source = ../../rsc/config/nvim; + recursive = true; + }; + }; + + environment.systemPackages = with pkgs; [ + gcc + black + python310Packages.debugpy # is this working? + mypy + ruff + nodePackages.pyright + clang-tools_16 + rnix-lsp + rust-analyzer + nodePackages.eslint_d + nodePackages.jsonlint + alejandra + ]; +} diff --git a/modules/coding/vscode.nix b/modules/coding/vscode.nix new file mode 100644 index 0000000..14f3de1 --- /dev/null +++ b/modules/coding/vscode.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + pkgs, + vars, + ... +}: let +in { + home-manager.users.${vars.user} = { + programs.vscode = { + enable = true; + package = pkgs.vscodium; + enableUpdateCheck = false; + extensions = with pkgs.vscode-extensions; [ + catppuccin.catppuccin-vsc + pkief.material-icon-theme + vscodevim.vim + bbenoist.nix + ms-python.python + ms-toolsai.jupyter + ms-toolsai.jupyter-renderers + ms-toolsai.jupyter-keymap + ]; + userSettings = { + #Theming + "workbench.colorTheme" = "Catppuccin Mocha"; + "catppuccin.accentColor" = "teal"; + "workbench.iconTheme" = "material-icon-theme"; + "window.menuBarVisibility" = "toggle"; + "editor.minimap.autohide" = false; + #Extensions - General + "extensions.autoCheckUpdates" = false; + "extensions.autoUpdate" = false; + # Startup + "workbench.startupEditor" = "none"; + }; + }; + }; + + # programs.vscode.package = pkgs.vscodium.fhsWithPackages (ps: with ps; [rustup zlib]); +} From 1cd8a584429cd86f616022b11378987a0d564d3d Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:51:06 +0100 Subject: [PATCH 02/15] Add kde connect --- hosts/desktop/default.nix | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 358bb6f..e7ee166 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -45,16 +45,28 @@ # hyprland.enable = true; kde.enable = true; awesome.enable = true; - + # home-manager.users.${vars.user} = { + # services.kdeconnect.enable = true; + # }; + nixpkgs.config.librewolf.enablePlasmaBrowserIntegration = true; + programs.kdeconnect.enable = true; environment = { - systemPackages = with pkgs; [ - # System-Wide Packages - discord # Messaging - obs-studio # Live Streaming - simple-scan # Scanning - easyeffects - firefox - heroic - ]; + systemPackages = with pkgs; + [ + # System-Wide Packages + discord # Messaging + obs-studio # Live Streaming + simple-scan # Scanning + firefox + heroic + nextcloud-client + anki + easyeffects + qpwgraph + calibre + ] + ++ (with unstable; [ + libsForQt5.kdeconnect-kde + ]); }; } From 39f9b88a8f9d4044a2e8a0245ff379735460b6ba Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:54:03 +0100 Subject: [PATCH 03/15] Add serial access to user --- hosts/configuration.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 712b4e2..d2a74fb 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -12,7 +12,7 @@ users.users.${vars.user} = { # System User isNormalUser = true; - extraGroups = ["wheel" "video" "audio" "camera" "networkmanager" "lp" "scanner" "kvm" "libvirtd" "i2c"]; + extraGroups = ["wheel" "video" "audio" "camera" "networkmanager" "lp" "scanner" "kvm" "libvirtd" "i2c" "tty" "dialout"]; }; boot.supportedFilesystems = ["ntfs"]; From f3b0327a03bde2362825dc09ed6b34c50c8d6590 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:54:28 +0100 Subject: [PATCH 04/15] Preconfigure Librewolf --- modules/programs/librewolf.nix | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 modules/programs/librewolf.nix diff --git a/modules/programs/librewolf.nix b/modules/programs/librewolf.nix new file mode 100644 index 0000000..f30c801 --- /dev/null +++ b/modules/programs/librewolf.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + pkgs, + vars, + ... +}: { + home-manager.users.${vars.user} = { + programs.librewolf = { + enable = true; + settings = { + "identity.fxaccounts.enabled" = true; + "browser.sessionstore.enabled" = false; + "browser.startup.page" = 1; + "browser.sessionstore.resume_session_once" = true; + "browser.sessionstore.resume_from_crash" = false; + "middlemouse.paste" = false; + "general.autoScroll" = true; + "security.OCSP.require" = false; + }; + }; + }; +} From 5f75cf2aabb5937b37e8e72eea42b820eb6ce512 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:55:10 +0100 Subject: [PATCH 05/15] Add theming support --- hosts/configuration.nix | 5 +++++ modules/theming/cursor.nix | 44 +++++++++++++++++++++++++++++++++++++ modules/theming/default.nix | 5 +++++ modules/theming/gtk.nix | 20 +++++++++++++++++ modules/theming/qt.nix | 31 ++++++++++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 modules/theming/cursor.nix create mode 100644 modules/theming/default.nix create mode 100644 modules/theming/gtk.nix create mode 100644 modules/theming/qt.nix diff --git a/hosts/configuration.nix b/hosts/configuration.nix index d2a74fb..374cbb9 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -38,6 +38,11 @@ # xkbVariant = ""; # }; + environment.defaultCursor = { + enable = true; + theme = "breeze_cursors"; + }; + time.timeZone = "Europe/Berlin"; i18n = { defaultLocale = "en_US.UTF-8"; diff --git a/modules/theming/cursor.nix b/modules/theming/cursor.nix new file mode 100644 index 0000000..45753b9 --- /dev/null +++ b/modules/theming/cursor.nix @@ -0,0 +1,44 @@ +# Module to set a default cursor theme +{ + config, + pkgs, + lib, + ... +}: +with lib; let + cfg = config.environment.defaultCursor; + + indexThemeText = theme: generators.toINI {} {"icon theme" = {Inherits = "${theme}";};}; + + mkDefaultCursorFile = theme: + pkgs.writeTextDir + "share/icons/default/index.theme" + "${indexThemeText theme}"; + + defaultCursorPkg = mkDefaultCursorFile cfg.theme; +in { + options = { + environment.defaultCursor = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to set a default cursor theme for graphical environments. + ''; + }; + + theme = mkOption { + type = types.str; + default = ""; + example = "Adwaita"; + description = "The name of the defualt cursor theme."; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ + defaultCursorPkg + ]; + }; +} diff --git a/modules/theming/default.nix b/modules/theming/default.nix new file mode 100644 index 0000000..4d9a7d0 --- /dev/null +++ b/modules/theming/default.nix @@ -0,0 +1,5 @@ +[ + # ./gtk.nix + # ./qt.nix + ./cursor.nix +] diff --git a/modules/theming/gtk.nix b/modules/theming/gtk.nix new file mode 100644 index 0000000..5c1af22 --- /dev/null +++ b/modules/theming/gtk.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + pkgs, + vars, + ... +}: { + home-manager.users.${vars.user} = { + gtk.enable = true; + + # gtk.cursorTheme.package = pkgs.bibata-cursors; + # gtk.cursorTheme.name = "Bibata-Modern-Ice"; + + gtk.theme.package = pkgs.adw-gtk3; + gtk.theme.name = "adw-gtk3"; + + # gtk.iconTheme.package = gruvboxPlus; + # gtk.iconTheme.name = "GruvboxPlus"; + }; +} diff --git a/modules/theming/qt.nix b/modules/theming/qt.nix new file mode 100644 index 0000000..96e1510 --- /dev/null +++ b/modules/theming/qt.nix @@ -0,0 +1,31 @@ +{ + config, + lib, + pkgs, + vars, + ... +}: { + environment.systemPackages = with pkgs; [ + libsForQt5.qtstyleplugins + libsForQt5.qtstyleplugin-kvantum + #other stuff + ]; + home-manager.users.${vars.user} = { + qt.enable = true; + + # platform theme "gtk" or "gnome" + qt.platformTheme = "gtk"; + + # name of the qt theme + qt.style.name = "adwaita"; + + # detected automatically: + # adwaita, adwaita-dark, adwaita-highcontrast, + # adwaita-highcontrastinverse, breeze, + # bb10bright, bb10dark, cde, cleanlooks, + # gtk2, motif, plastique + + # package to use + qt.style.package = pkgs.adwaita-qt; + }; +} From f251e8db9e6476d694c08c4576cf7753f15146ec Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:55:43 +0100 Subject: [PATCH 06/15] Fix kde connect Couldn't connect to dbus otherwise --- rsc/config/awesome/autostart.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/rsc/config/awesome/autostart.lua b/rsc/config/awesome/autostart.lua index 80daf8f..527d566 100644 --- a/rsc/config/awesome/autostart.lua +++ b/rsc/config/awesome/autostart.lua @@ -25,6 +25,7 @@ function autostart.exec(awful) awful.spawn.with_shell("xmousepasteblock") awful.spawn.with_shell("xinput map-to-output 20 DVI-I") -- awful.spawn.with_shell("fcitx5 -d") + awful.spawn.with_shell('dbus-daemon --session --address="unix:path=$XDG_RUNTIME_DIR/bus"') end return autostart From 4c34c2bf3095b6fbbdb95a4409457b38632c067a Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:56:44 +0100 Subject: [PATCH 07/15] Add proper japanese support --- hosts/configuration.nix | 12 +++++++++--- rsc/config/awesome/autostart.lua | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 374cbb9..97b373d 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -31,7 +31,6 @@ # Enable the KDE Plasma Desktop Environment. services.xserver.displayManager.sddm.enable = true; - # Configure keymap in X11 # services.xserver = { # layout = "de"; @@ -84,6 +83,7 @@ source-code-pro ttf_bitstream_vera inter + noto-fonts-cjk-sans (nerdfonts.override { # Nerdfont Icons override fonts = [ @@ -129,8 +129,6 @@ # Apps appimage-run # Runs AppImages on NixOS - fcitx5 - fcitx5-mozc webcord signal-desktop alacritty @@ -167,6 +165,14 @@ dconf.enable = true; }; + i18n.inputMethod = { + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-mozc + fcitx5-gtk + ]; + }; + services = { printing = { # CUPS diff --git a/rsc/config/awesome/autostart.lua b/rsc/config/awesome/autostart.lua index 527d566..3562e80 100644 --- a/rsc/config/awesome/autostart.lua +++ b/rsc/config/awesome/autostart.lua @@ -24,8 +24,8 @@ function autostart.exec(awful) -- awful.spawn.with_shell("autocutsel -fork -selection PRIMARY") awful.spawn.with_shell("xmousepasteblock") awful.spawn.with_shell("xinput map-to-output 20 DVI-I") - -- awful.spawn.with_shell("fcitx5 -d") awful.spawn.with_shell('dbus-daemon --session --address="unix:path=$XDG_RUNTIME_DIR/bus"') + awful.spawn.with_shell("fcitx5 -d") end return autostart From e037dbb7b4afc621800c6e062d46fabb1c611c2c Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:57:21 +0100 Subject: [PATCH 08/15] Add neovim config --- hosts/configuration.nix | 4 +- rsc/config/nvim/chadrc.lua | 19 +++ rsc/config/nvim/configs/illuminate.lua | 34 ++++ rsc/config/nvim/configs/lspconfig.lua | 26 ++++ rsc/config/nvim/configs/null-ls.lua | 30 ++++ rsc/config/nvim/configs/rust-tools.lua | 12 ++ rsc/config/nvim/configs/todo.lua | 55 +++++++ rsc/config/nvim/headers.lua | 206 +++++++++++++++++++++++++ rsc/config/nvim/init.lua | 6 + rsc/config/nvim/mappings.lua | 68 ++++++++ rsc/config/nvim/plugins.lua | 193 +++++++++++++++++++++++ 11 files changed, 651 insertions(+), 2 deletions(-) create mode 100644 rsc/config/nvim/chadrc.lua create mode 100644 rsc/config/nvim/configs/illuminate.lua create mode 100644 rsc/config/nvim/configs/lspconfig.lua create mode 100644 rsc/config/nvim/configs/null-ls.lua create mode 100644 rsc/config/nvim/configs/rust-tools.lua create mode 100644 rsc/config/nvim/configs/todo.lua create mode 100644 rsc/config/nvim/headers.lua create mode 100644 rsc/config/nvim/init.lua create mode 100644 rsc/config/nvim/mappings.lua create mode 100644 rsc/config/nvim/plugins.lua diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 97b373d..76554cc 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -7,7 +7,8 @@ vars, ... }: { - imports = (import ../modules/desktops) ++ (import ../modules/shell); + imports = + (import ../modules/desktops) ++ (import ../modules/shell) ++ [../modules/programs/librewolf.nix] ++ (import ../modules/theming) ++ (import ../modules/coding); users.users.${vars.user} = { # System User @@ -23,7 +24,6 @@ programs.fish.enable = true; services.flatpak.enable = true; - # Enable the X11 windowing system. # services.xserver.enable = true; diff --git a/rsc/config/nvim/chadrc.lua b/rsc/config/nvim/chadrc.lua new file mode 100644 index 0000000..2facbe6 --- /dev/null +++ b/rsc/config/nvim/chadrc.lua @@ -0,0 +1,19 @@ +local headers = require("custom.headers") + +---@type ChadrcConfig + local M = {} + M.ui = { + theme = 'catppuccin', + nvdash = { + load_on_startup = true, + header=headers.Bloody, + }, + statusline = { + separator_style = "block", + theme = "default", + }, + transparency = true, + } + M.plugins = "custom.plugins" + M.mappings = require "custom.mappings" + return M diff --git a/rsc/config/nvim/configs/illuminate.lua b/rsc/config/nvim/configs/illuminate.lua new file mode 100644 index 0000000..4010a45 --- /dev/null +++ b/rsc/config/nvim/configs/illuminate.lua @@ -0,0 +1,34 @@ +local status, illuminate = pcall(require, "illuminate") + +if not status then + return +end + +illuminate.configure { + -- providers: provider used to get references in the buffer, ordered by priority + providers = { + "lsp", + "treesitter", + "regex", + }, + delay = 100, + filetypes_denylist = { + "dirvish", + "fugitive", + "alpha", + "NvimTree", + "packer", + "neogitstatus", + "Trouble", + "lir", + "Outline", + "spectre_panel", + "toggleterm", + "DressingSelect", + "TelescopePrompt", + "aerial", + "Empty", + }, + under_cursor = true, + max_file_lines = nil, +} diff --git a/rsc/config/nvim/configs/lspconfig.lua b/rsc/config/nvim/configs/lspconfig.lua new file mode 100644 index 0000000..02b61c1 --- /dev/null +++ b/rsc/config/nvim/configs/lspconfig.lua @@ -0,0 +1,26 @@ +local config = require("plugins.configs.lspconfig") + +local on_attach = config.on_attach +local capabilities = config.capabilities + +local lspconfig = require("lspconfig") + +lspconfig.pyright.setup({ + on_attach = on_attach, + capabilities = capabilities, + filetypes = {"python"}, +}) + +lspconfig.rnix.setup({ + on_attach = on_attach, + capabilities = capabilities, + filetypes = {"nix"}, +}) + +lspconfig.clangd.setup { + on_attach = function(client, bufnr) + client.server_capabilities.signatureHelpProvider = false + on_attach(client, bufnr) + end, + capabilities = capabilities, +} diff --git a/rsc/config/nvim/configs/null-ls.lua b/rsc/config/nvim/configs/null-ls.lua new file mode 100644 index 0000000..83b57b3 --- /dev/null +++ b/rsc/config/nvim/configs/null-ls.lua @@ -0,0 +1,30 @@ +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) +local null_ls = require('null-ls') + +local opts = { + sources = { + null_ls.builtins.formatting.black, + null_ls.builtins.diagnostics.mypy, + null_ls.builtins.diagnostics.eslint_d, + null_ls.builtins.diagnostics.jsonlint, + null_ls.builtins.diagnostics.ruff, + null_ls.builtins.formatting.clang_format, + null_ls.builtins.formatting.alejandra, + }, + on_attach = function(client, bufnr) + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ + group = augroup, + buffer = bufnr, + }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ bufnr = bufnr }) + end, + }) + end + end, +} +return opts diff --git a/rsc/config/nvim/configs/rust-tools.lua b/rsc/config/nvim/configs/rust-tools.lua new file mode 100644 index 0000000..db34682 --- /dev/null +++ b/rsc/config/nvim/configs/rust-tools.lua @@ -0,0 +1,12 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach +local capabilities = require("plugins.configs.lspconfig").capabilities + + +local options = { + server = { + on_attach = on_attach, + capabilities = capabilities, + }, +} + +return options diff --git a/rsc/config/nvim/configs/todo.lua b/rsc/config/nvim/configs/todo.lua new file mode 100644 index 0000000..3da991d --- /dev/null +++ b/rsc/config/nvim/configs/todo.lua @@ -0,0 +1,55 @@ +require("todo-comments").setup { + signs = true, + sign_priority = 8, + keywords = { + FIX = { + icon = " ", -- icon used for the sign, and in search results + color = "error", -- can be a hex color, or a named color (see below) + alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + TODO = { icon = " ", color = "info" }, + HACK = { icon = " ", color = "warning" }, + WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, + PERF = { icon = "󰑮 ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, + NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, + TEST = { icon = "󰤑 ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }, + }, + gui_style = { + fg = "NONE", -- The gui style to use for the fg highlight group. + bg = "BOLD", -- The gui style to use for the bg highlight group. + }, + merge_keywords = true, -- when true, custom keywords will be merged with the defaults + highlight = { + multiline = true, -- enable multine todo comments + multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword + multiline_context = 10, -- extra lines that will be re-evaluated when changing a line + before = "", -- "fg" or "bg" or empty + keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg) + after = "fg", -- "fg" or "bg" or empty + pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex) + comments_only = true, -- uses treesitter to match keywords in comments only + max_line_len = 400, -- ignore lines longer than this + exclude = {}, -- list of file types to exclude highlighting + }, + colors = { + error = { "DiagnosticError", "ErrorMsg", "#DC2626" }, + warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" }, + info = { "DiagnosticInfo", "#2563EB" }, + hint = { "DiagnosticHint", "#10B981" }, + default = { "Identifier", "#7C3AED" }, + test = { "Identifier", "#FF00FF" }, + }, + search = { + command = "rg", + args = { + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + }, + pattern = [[\b(KEYWORDS):]], -- ripgrep regex + -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. + }, +} diff --git a/rsc/config/nvim/headers.lua b/rsc/config/nvim/headers.lua new file mode 100644 index 0000000..6582f3e --- /dev/null +++ b/rsc/config/nvim/headers.lua @@ -0,0 +1,206 @@ +local M = {} + +M.Default = { + [[ ██████ █████ ███ ]], + [[░░██████ ░░███ ░░░ ]], + [[ ░███░███ ░███ ██████ ██████ █████ █████ ████ █████████████ ]], + [[ ░███░░███░███ ███░░███ ███░░███░░███ ░░███ ░░███ ░░███░░███░░███ ]], + [[ ░███ ░░██████ ░███████ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ]], + [[ ░███ ░░█████ ░███░░░ ░███ ░███ ░░███ ███ ░███ ░███ ░███ ░███ ]], + [[ █████ ░░█████░░██████ ░░██████ ░░█████ █████ █████░███ █████]], + [[░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░ ░░░░░ ]], +} + +M.Default2 = { + [[███╗░░██╗███████╗░█████╗░██╗░░░██╗██╗███╗░░░███╗]], + [[████╗░██║██╔════╝██╔══██╗██║░░░██║██║████╗░████║]], + [[██╔██╗██║█████╗░░██║░░██║╚██╗░██╔╝██║██╔████╔██║]], + [[██║╚████║██╔══╝░░██║░░██║░╚████╔╝░██║██║╚██╔╝██║]], + [[██║░╚███║███████╗╚█████╔╝░░╚██╔╝░░██║██║░╚═╝░██║]], + [[╚═╝░░╚══╝╚══════╝░╚════╝░░░░╚═╝░░░╚═╝╚═╝░░░░░╚═╝]], +} + +M.ThreeDimensionsDiagonal = { + [[ ,--. ]], + [[ ,--.'| ____ ]], + [[ ,--,: : | ,--, ,' , `.]], + [[,`--.'`| ' : ,---. ,--.'| ,-+-,.' _ |]], + [[| : : | | ' ,'\ .---.| |, ,-+-. ; , ||]], + [[: | \ | : ,---. / / | /. ./|`--'_ ,--.'|' | ||]], + [[| : ' '; | / \ . ; ,. : .-' . ' |,' ,'| | | ,', | |,]], + [[' ' ;. ; / / |' | |: :/___/ \: |' | | | | / | |--' ]], + [[| | | \ |. ' / |' | .; :. \ ' .| | : | : | | , ]], + [[' : | ; .'' ; /|| : | \ \ '' : |__ | : | |/ ]], + [[| | '`--' ' | / | \ \ / \ \ | | '.'|| | |`-' ]], + [[' : | | : | `----' \ \ |; : ;| ;/ ]], + [[; |.' \ \ / '---" | , / '---' ]], + [['---' `----' ---`-' ]], +} + +M.Alpha = { + [[ _____ _____ _______ _____ _____ _____ ]], + [[ /\ \ /\ \ /::\ \ /\ \ /\ \ /\ \ ]], + [[ /::\____\ /::\ \ /::::\ \ /::\____\ /::\ \ /::\____\ ]], + [[ /::::| | /::::\ \ /::::::\ \ /:::/ / \:::\ \ /::::| | ]], + [[ /:::::| | /::::::\ \ /::::::::\ \ /:::/ / \:::\ \ /:::::| | ]], + [[ /::::::| | /:::/\:::\ \ /:::/~~\:::\ \ /:::/ / \:::\ \ /::::::| | ]], + [[ /:::/|::| | /:::/__\:::\ \ /:::/ \:::\ \ /:::/____/ \:::\ \ /:::/|::| | ]], + [[ /:::/ |::| | /::::\ \:::\ \ /:::/ / \:::\ \ |::| | /::::\ \ /:::/ |::| | ]], + [[ /:::/ |::| | _____ /::::::\ \:::\ \ /:::/____/ \:::\____\ |::| | _____ ____ /::::::\ \ /:::/ |::|___|______ ]], + [[ /:::/ |::| |/\ \ /:::/\:::\ \:::\ \ |:::| | |:::| | |::| | /\ \ /\ \ /:::/\:::\ \ /:::/ |::::::::\ \ ]], + [[/:: / |::| /::\____\/:::/__\:::\ \:::\____\|:::|____| |:::| | |::| | /::\____\/::\ \/:::/ \:::\____\/:::/ |:::::::::\____\]], + [[\::/ /|::| /:::/ /\:::\ \:::\ \::/ / \:::\ \ /:::/ / |::| | /:::/ /\:::\ /:::/ \::/ /\::/ / ~~~~~/:::/ /]], + [[ \/____/ |::| /:::/ / \:::\ \:::\ \/____/ \:::\ \ /:::/ / |::| | /:::/ / \:::\/:::/ / \/____/ \/____/ /:::/ / ]], + [[ |::|/:::/ / \:::\ \:::\ \ \:::\ /:::/ / |::|____|/:::/ / \::::::/ / /:::/ / ]], + [[ |::::::/ / \:::\ \:::\____\ \:::\__/:::/ / |:::::::::::/ / \::::/____/ /:::/ / ]], + [[ |:::::/ / \:::\ \::/ / \::::::::/ / \::::::::::/____/ \:::\ \ /:::/ / ]], + [[ |::::/ / \:::\ \/____/ \::::::/ / ~~~~~~~~~~ \:::\ \ /:::/ / ]], + [[ /:::/ / \:::\ \ \::::/ / \:::\ \ /:::/ / ]], + [[ /:::/ / \:::\____\ \::/____/ \:::\____\ /:::/ / ]], + [[ \::/ / \::/ / ~~ \::/ / \::/ / ]], + [[ \/____/ \/____/ \/____/ \/____/ ]], +} + +M.FiraFontK = { + [[ ) ]], + [[ ( /( ]], + [[ )\()) ( ) ( ) ]], + [[((_)\ ))\ ( /(( )\ ( ]], + [[ _((_) /((_) )\ (_))\((_) )\ ']], + [[| \| |(_)) ((_)_)((_)(_) _((_)) ]], + [[| .` |/ -_)/ _ \\ V / | || ' \()]], + [[|_|\_|\___|\___/ \_/ |_||_|_|_| ]], +} + +M.FiraFontS = { + [[ ) ]], + [[ ( /( ]], + [[ )\()) ( ) ( ) ]], + [[((_)\ ))\ ( /(( )\ ( ]], + [[ _((_)/((_))\(_))((_) )\ ']], + [[| \| (_)) ((_))((_|_)_((_)) ]], + [[| .` / -_) _ \ V /| | ' \()]], + [[|_|\_\___\___/\_/ |_|_|_|_| ]], +} + +M.Impossible = { + [[ _ _ _ _ _ _ _ _ ]], + [[ /\ \ _ /\ \ /\ \ /\ \ _ / /\ /\ \ /\_\/\_\ _ ]], + [[ / \ \ /\_\ / \ \ / \ \ \ \ \ /_/ / / \ \ \ / / / / //\_\]], + [[ / /\ \ \_/ / // /\ \ \ / /\ \ \ \ \ \ \___\/ /\ \_\ /\ \/ \ \/ / /]], + [[ / / /\ \___/ // / /\ \_\ / / /\ \ \ / / / \ \ \ / /\/_/ / \____\__/ / ]], + [[ / / / \/____// /_/_ \/_/ / / / \ \_\\ \ \ \_\ \ / / / / /\/________/ ]], + [[ / / / / / // /____/\ / / / / / / \ \ \ / / / / / / / / /\/_// / / ]], + [[ / / / / / // /\____\/ / / / / / / \ \ \/ / / / / / / / / / / / ]], + [[ / / / / / // / /______ / / /___/ / / \ \ \/ /___/ / /__ / / / / / / ]], + [[/ / / / / // / /_______\/ / /____\/ / \ \ //\__\/_/___\\/_/ / / / ]], + [[\/_/ \/_/ \/__________/\/_________/ \_\/ \/_________/ \/_/ ]], +} + +M.Isometric1 = { + [[ ___ ___ ___ ___ ___ ]], + [[ /\__\ /\ \ /\ \ /\__\ ___ /\__\ ]], + [[ /::| | /::\ \ /::\ \ /:/ / /\ \ /::| | ]], + [[ /:|:| | /:/\:\ \ /:/\:\ \ /:/ / \:\ \ /:|:| | ]], + [[ /:/|:| |__ /::\~\:\ \ /:/ \:\ \ /:/__/ ___ /::\__\ /:/|:|__|__ ]], + [[ /:/ |:| /\__\ /:/\:\ \:\__\ /:/__/ \:\__\ |:| | /\__\ __/:/\/__/ /:/ |::::\__\]], + [[ \/__|:|/:/ / \:\~\:\ \/__/ \:\ \ /:/ / |:| |/:/ / /\/:/ / \/__/~~/:/ /]], + [[ |:/:/ / \:\ \:\__\ \:\ /:/ / |:|__/:/ / \::/__/ /:/ / ]], + [[ |::/ / \:\ \/__/ \:\/:/ / \::::/__/ \:\__\ /:/ / ]], + [[ /:/ / \:\__\ \::/ / ~~~~ \/__/ /:/ / ]], + [[ \/__/ \/__/ \/__/ \/__/ ]], +} + +M.Isometric2 = { + [[ ___ ___ ___ ___ ]], + [[ /\ \ /\__\ /\ \ ___ /\ \ ]], + [[ \:\ \ /:/ _/_ /::\ \ /\ \ ___ |::\ \ ]], + [[ \:\ \ /:/ /\__\ /:/\:\ \ \:\ \ /\__\ |:|:\ \ ]], + [[ _____\:\ \ /:/ /:/ _/_ /:/ \:\ \ \:\ \ /:/__/ __|:|\:\ \ ]], + [[/::::::::\__\ /:/_/:/ /\__\ /:/__/ \:\__\ ___ \:\__\ /::\ \ /::::|_\:\__\]], + [[\:\~~\~~\/__/ \:\/:/ /:/ / \:\ \ /:/ / /\ \ |:| | \/\:\ \__ \:\~~\ \/__/]], + [[ \:\ \ \::/_/:/ / \:\ /:/ / \:\ \|:| | ~~\:\/\__\ \:\ \ ]], + [[ \:\ \ \:\/:/ / \:\/:/ / \:\__|:|__| \::/ / \:\ \ ]], + [[ \:\__\ \::/ / \::/ / \::::/__/ /:/ / \:\__\ ]], + [[ \/__/ \/__/ \/__/ ~~~~ \/__/ \/__/ ]], +} + +M.Isometric3 = { + [[ ___ ___ ___ ___ ]], + [[ /__/\ / /\ / /\ ___ ___ /__/\ ]], + [[ \ \:\ / /:/_ / /::\ /__/\ / /\ | |::\ ]], + [[ \ \:\ / /:/ /\ / /:/\:\ \ \:\ / /:/ | |:|:\ ]], + [[ _____\__\:\ / /:/ /:/_ / /:/ \:\ \ \:\ /__/::\ __|__|:|\:\ ]], + [[/__/::::::::\ /__/:/ /:/ /\ /__/:/ \__\:\ ___ \__\:\ \__\/\:\__ /__/::::| \:\]], + [[\ \:\~~\~~\/ \ \:\/:/ /:/ \ \:\ / /:/ /__/\ | |:| \ \:\/\ \ \:\~~\__\/]], + [[ \ \:\ ~~~ \ \::/ /:/ \ \:\ /:/ \ \:\| |:| \__\::/ \ \:\ ]], + [[ \ \:\ \ \:\/:/ \ \:\/:/ \ \:\__|:| /__/:/ \ \:\ ]], + [[ \ \:\ \ \::/ \ \::/ \__\::::/ \__\/ \ \:\ ]], + [[ \__\/ \__\/ \__\/ ~~~~ \__\/ ]], +} + +M.Isometric4 = { + [[ ___ ___ ___ ___ ]], + [[ / /\ / /\ / /\ ___ ___ / /\ ]], + [[ / /::| / /::\ / /::\ / /\ /__/\ / /::| ]], + [[ / /:|:| / /:/\:\ / /:/\:\ / /:/ \__\:\ / /:|:| ]], + [[ / /:/|:|__ / /::\ \:\ / /:/ \:\ / /:/ / /::\ / /:/|:|__ ]], + [[/__/:/ |:| /\ /__/:/\:\ \:\ /__/:/ \__\:\ /__/:/ ___ __/ /:/\/ /__/:/_|::::\]], + [[\__\/ |:|/:/ \ \:\ \:\_\/ \ \:\ / /:/ | |:| / /\ /__/\/:/~~ \__\/ /~~/:/]], + [[ | |:/:/ \ \:\ \:\ \ \:\ /:/ | |:|/ /:/ \ \::/ / /:/ ]], + [[ |__|::/ \ \:\_\/ \ \:\/:/ |__|:|__/:/ \ \:\ / /:/ ]], + [[ /__/:/ \ \:\ \ \::/ \__\::::/ \__\/ /__/:/ ]], + [[ \__\/ \__\/ \__\/ ~~~~ \__\/ ]], +} + +M.Bloody = { + [[ ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓]], + [[ ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒]], + [[▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░]], + [[▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ ]], + [[▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒]], + [[░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░]], + [[░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░]], + [[ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ ]], + [[ ░ ░ ░ ░ ░ ░ ░ ░ ]], + [[ ░ ]], +} + +M.TheEdge = { + [[ ▄ ▄███▄ ████▄ ▄ ▄█ █▀▄▀█]], + [[ █ █▀ ▀ █ █ █ ██ █ █ █]], + [[██ █ ██▄▄ █ █ █ █ ██ █ ▄ █]], + [[█ █ █ █▄ ▄▀ ▀████ █ █ ▐█ █ █]], + [[█ █ █ ▀███▀ █ █ ▐ █ ]], + [[█ ██ █▐ ▀ ]], + [[ ▐ ]], +} + +M.Fraktur = { + [[ ... ... _ . ]], + [[ .=*8888n.."%888: u @88> ]], + [[ X ?8888f '8888 u. 88Nu. u. %8P .. . : ]], + [[ 88x. '8888X 8888> .u ...ue888b '88888.o888c . .888: x888 x888. ]], + [['8888k 8888X '"*8h. ud8888. 888R Y888r ^8888 8888 .@88u ~`8888~'888X`?888f`]], + [[ "8888 X888X .xH8 :888'8888. 888R I888> 8888 8888 ''888E` X888 888X '888> ]], + [[ `8" X888!:888X d888 '88%" 888R I888> 8888 8888 888E X888 888X '888> ]], + [[ =~` X888 X888X 8888.+" 888R I888> 8888 8888 888E X888 888X '888> ]], + [[ :h. X8*` !888X 8888L u8888cJ888 .8888b.888P 888E X888 888X '888> ]], + [[ X888xX" '8888..: '8888c. .+ "*888*P" ^Y8888*"" 888& "*88%""*88" '888!`]], + [[:~`888f '*888*" "88888% 'Y" `Y" R888" `~ " `"` ]], + [[ "" `"` "YP' "" ]], +} + +M.Larry3D = { + [[ __ __ ]], + [[/\ \/\ \ __ ]], + [[\ \ `\\ \ __ ___ __ __ /\_\ ___ ___ ]], + [[ \ \ , ` \ /'__`\ / __`\/\ \/\ \\/\ \ /' __` __`\ ]], + [[ \ \ \`\ \/\ __//\ \L\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]], + [[ \ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]], + [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]], +} + +-- These ASCII art have been generated in: http://patorjk.com/software/taag/ + +return M diff --git a/rsc/config/nvim/init.lua b/rsc/config/nvim/init.lua new file mode 100644 index 0000000..27cbee9 --- /dev/null +++ b/rsc/config/nvim/init.lua @@ -0,0 +1,6 @@ +vim.opt.relativenumber = true +vim.o.guifont = "JetBrainsMono Nerd Font:h12" +vim.g.neovide_transparency = 0.8 +vim.g.transparency = 1.0 +vim.g.neovide_cursor_vfx_mode = "torpedo" +--vim.g.neovide_background_color = "#1e1e2e" diff --git a/rsc/config/nvim/mappings.lua b/rsc/config/nvim/mappings.lua new file mode 100644 index 0000000..ae6bb77 --- /dev/null +++ b/rsc/config/nvim/mappings.lua @@ -0,0 +1,68 @@ +local M = {} + +M.dap = { + plugin = true, + n = { + ["db"] = { + " DapToggleBreakpoint ", + "Add breakpoint at line" + }, + ["dr"] = { + " DapContinue ", + "Start or continue the debugger", + }, + ["dus"] = { + function () + local widgets = require('dap.ui.widgets'); + local sidebar = widgets.sidebar(widgets.scopes); + sidebar.open(); + end, + "Open debugging sidebar" + }, + [""] = { + function () + require("dap").continue() + end + }, + [""] = { + function () + require("dap").step_over() + end + }, + [""] = { + function () + require("dap").step_into() + end + }, + [""] = { + function () + require("dap").step_out() + end + }, + } +} + +M.dap_python = { + plugin = true, + n = { + ["dpr"] = { + function() + require('dap-python').test_method() + end + }, + } +} + +M.crates = { + plugin = true, + n = { + ["rcu"] = { + function () + require('crates').upgrade_all_crates() + end, + "update crates" + } + } +} + +return M diff --git a/rsc/config/nvim/plugins.lua b/rsc/config/nvim/plugins.lua new file mode 100644 index 0000000..219c1a0 --- /dev/null +++ b/rsc/config/nvim/plugins.lua @@ -0,0 +1,193 @@ +local cmp = require "cmp" + +local plugins = { + { + 'numToStr/Comment.nvim', + lazy = false, + }, + { + "simrat39/rust-tools.nvim", + ft = "rust", + dependencies = "neovim/nvim-lspconfig", + opts = function () + return require "custom.configs.rust-tools" + end, + config = function(_, opts) + require('rust-tools').setup(opts) + end + }, + { + 'saecki/crates.nvim', + ft = {"toml"}, + config = function(_, opts) + local crates = require('crates') + crates.setup(opts) + require('cmp').setup.buffer({ + sources = { { name = "crates" }} + }) + crates.show() + require("core.utils").load_mappings("crates") + end, + }, + { + "rust-lang/rust.vim", + ft = "rust", + init = function () + vim.g.rustfmt_autosave = 1 + end + }, + { + "theHamsta/nvim-dap-virtual-text", + lazy = false, + config = function(_, opts) + require("nvim-dap-virtual-text").setup() + end + }, + { + "hrsh7th/nvim-cmp", + opts = function() + local M = require "plugins.configs.cmp" + M.completion.completeopt = "menu,menuone,noselect" + M.mapping[""] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Insert, + select = false, + } + table.insert(M.sources, {name = "crates"}) + return M + end, + }, + { + "m4xshen/hardtime.nvim", + dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, + cmd = { "Hardtime" }, + opts = {} + }, + { + "folke/todo-comments.nvim", + event = "BufReadPost", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require "custom.configs.todo" + end, + }, + { + "RRethy/vim-illuminate", + event = { "CursorHold", "CursorHoldI" }, + config = function() + require "custom.configs.illuminate" + end, + }, + { + "hiphish/rainbow-delimiters.nvim", + event = "BufReadPost", + config = function() + local rainbow_delimiters = require "rainbow-delimiters" + + vim.g.rainbow_delimiters = { + strategy = { + [""] = rainbow_delimiters.strategy["global"], + vim = rainbow_delimiters.strategy["local"], + }, + query = { + [""] = "rainbow-delimiters", + lua = "rainbow-blocks", + }, + highlight = { + "RainbowDelimiterRed", + "RainbowDelimiterYellow", + "RainbowDelimiterBlue", + "RainbowDelimiterOrange", + "RainbowDelimiterGreen", + "RainbowDelimiterViolet", + "RainbowDelimiterCyan", + }, + } + end, + }, + { + "rcarriga/nvim-dap-ui", + event = "VeryLazy", + dependencies = "mfussenegger/nvim-dap", + config = function() + local dap = require("dap") + local dapui = require("dapui") + dapui.setup() + dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open() + end + dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close() + end + dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close() + end + end + }, + { + "jay-babu/mason-nvim-dap.nvim", + event = "VeryLazy", + dependencies = { + "williamboman/mason.nvim", + "mfussenegger/nvim-dap", + }, + opts = { + handlers = {} + }, + }, + { + "mfussenegger/nvim-dap", + config = function (_,opts) + require("core.utils").load_mappings("dap") + end + }, + { + "mfussenegger/nvim-dap-python", + ft = "python", + dependencies = { + "mfussenegger/nvim-dap", + "rcarriga/nvim-dap-ui" + }, + config = function (_,opts) + local path = "~/.local/share/nvim/mason/packages/debugpy/venv/bin/python" + require("dap-python").setup(path) + require("core.utils").load_mappings("dap_python") + end, + }, + { + "jose-elias-alvarez/null-ls.nvim", + event = "VeryLazy", + opts = function() + return require "custom.configs.null-ls" + end, + }, + { + "neovim/nvim-lspconfig", + config = function () + require "plugins.configs.lspconfig" + require "custom.configs.lspconfig" + end + }, + { + "nvim-treesitter", + opts = { + ensure_installed = { + "ocaml", + "python", + "rust", + "css", + "html", + "dockerfile", + "gitignore", + "typescript", + "nix", + "rust", + } + } + }, + { + "theRealCarneiro/hyprland-vim-syntax", + dependencies = { "nvim-treesitter/nvim-treesitter" }, + ft = "hypr", + }, +} +return plugins From 4091a3a29daa4c62ee83079e21571b57614bd0b1 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:57:46 +0100 Subject: [PATCH 09/15] Setup monitors for home system --- rsc/config/awesome/autostart.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/rsc/config/awesome/autostart.lua b/rsc/config/awesome/autostart.lua index 3562e80..6da4556 100644 --- a/rsc/config/awesome/autostart.lua +++ b/rsc/config/awesome/autostart.lua @@ -24,6 +24,7 @@ function autostart.exec(awful) -- awful.spawn.with_shell("autocutsel -fork -selection PRIMARY") awful.spawn.with_shell("xmousepasteblock") awful.spawn.with_shell("xinput map-to-output 20 DVI-I") + awful.spawn.with_shell("xrandr --output DP-0 --mode 1920x1080 --rate 74.97 --pos 0x0 --rotate normal --output DP-4 --primary --mode 2560x1440 --rate 143.86 --pos 1920x0 --rotate normal") awful.spawn.with_shell('dbus-daemon --session --address="unix:path=$XDG_RUNTIME_DIR/bus"') awful.spawn.with_shell("fcitx5 -d") end From 8c9395ca87eaea44c9380ffe0ba14ccbc7980730 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 15:03:43 +0100 Subject: [PATCH 10/15] Add alacritty configuration --- hosts/configuration.nix | 2 +- modules/programs/alacritty.nix | 14 + rsc/config/alacritty/alacritty.yml | 860 +++++++++++++++++++++++++++++ 3 files changed, 875 insertions(+), 1 deletion(-) create mode 100644 modules/programs/alacritty.nix create mode 100644 rsc/config/alacritty/alacritty.yml diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 76554cc..40c6bb8 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -8,7 +8,7 @@ ... }: { imports = - (import ../modules/desktops) ++ (import ../modules/shell) ++ [../modules/programs/librewolf.nix] ++ (import ../modules/theming) ++ (import ../modules/coding); + (import ../modules/desktops) ++ (import ../modules/shell) ++ [../modules/programs/librewolf.nix ../modules/programs/alacritty.nix] ++ (import ../modules/theming) ++ (import ../modules/coding); users.users.${vars.user} = { # System User diff --git a/modules/programs/alacritty.nix b/modules/programs/alacritty.nix new file mode 100644 index 0000000..fc3dce3 --- /dev/null +++ b/modules/programs/alacritty.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + pkgs, + vars, + ... +}: { + home-manager.users.${vars.user} = { + home.file.".config/alacritty" = { + source = ../../rsc/config/alacritty; + recursive = true; + }; + }; +} diff --git a/rsc/config/alacritty/alacritty.yml b/rsc/config/alacritty/alacritty.yml new file mode 100644 index 0000000..d93c23f --- /dev/null +++ b/rsc/config/alacritty/alacritty.yml @@ -0,0 +1,860 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Import additional configuration files +# +# Imports are loaded in order, skipping all missing files, with the importing +# file being loaded last. If a field is already present in a previous import, it +# will be replaced. +# +# All imports must either be absolute paths starting with `/`, or paths relative +# to the user's home directory starting with `~/`. +#import: +# - /path/to/alacritty.yml + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +#env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + #TERM: alacritty + +window: + # Window dimensions (changes require restart) + # + # Number of lines/columns (not pixels) in the terminal. Both lines and columns + # must be non-zero for this to take effect. The number of columns must be at + # least `2`, while using a value of `0` for columns and lines will fall back + # to the window manager's recommended size + #dimensions: + # columns: 0 + # lines: 0 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0s + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + padding: + x: 0 + y: 5 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background and no title bar buttons + #decorations: full + + # Background opacity + # + # Window opacity as a floating point number from `0.0` to `1.0`. + # The value `0.0` is completely transparent and `1.0` is opaque. + opacity: 0.9 + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed + + # Window title + #title: Alacritty + + # Allow terminal applications to change Alacritty's window title. + #dynamic_title: true + + # Window class (Linux/BSD only): + #class: + # Application instance name + #instance: Alacritty + # General application class + #general: Alacritty + + # Decorations theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme/Wayland client side decorations. + # Commonly supported values are `dark` and `light`. Set this to `None` to use + # the default theme variant. + #decorations_theme_variant: None + +#scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + #history: 10000 + + # Scrolling distance multiplier. + #multiplier: 3 + +# Font configuration +font: + normal: + family: JetBrains Mono Nerd Font + style: Medium + bold: + family: JetBrains Mono Nerd Font + style: Bold + italic: + family: JetBrains Mono Nerd Font + style: MediumItalic + + # Point size + #size: 11.0 + + # Offset is the extra space around each character. `offset.y` can be thought + # of as modifying the line spacing, and `offset.x` as modifying the letter + # spacing. + #offset: + # x: 0 + # y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the + # right, increasing `y` moves the glyph upward. + #glyph_offset: + # x: 0 + # y: 0 + + # Use built-in font for box drawing characters. + # + # If `true`, Alacritty will use a custom built-in font for box drawing + # characters (Unicode points 2500 - 259f). + # + #builtin_box_drawing: true + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: false + +# Colors (Tomorrow Night) +colors: + # Default colors + primary: + #background: '#24273A' + background: '#1e1e2e' + foreground: '#CAD3F5' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not + # present. If the bright foreground color is not set, or + # `draw_bold_text_with_bright_colors` is `false`, the normal foreground + # color will be used. + #dim_foreground: '#828482' + #bright_foreground: '#eaeaea' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #cursor: + # text: CellBackground + # cursor: CellForeground + + # Vi mode cursor colors + # + # Colors for the cursor when the vi mode is active. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #vi_mode_cursor: + # text: CellBackground + # cursor: CellForeground + + # Search colors + # + # Colors used for the search bar and match highlighting. + #search: + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #matches: + # foreground: '#000000' + # background: '#ffffff' + #focused_match: + # foreground: '#ffffff' + # background: '#000000' + + # Keyboard hints + #hints: + # First character in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #start: + # foreground: '#1d1f21' + # background: '#e9ff5e' + + # All characters after the first one in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #end: + # foreground: '#e9ff5e' + # background: '#1d1f21' + + # Line indicator + # + # Color used for the indicator displaying the position in history during + # search and vi mode. + # + # By default, these will use the opposing primary color. + #line_indicator: + # foreground: None + # background: None + + # Footer bar + # + # Color used for the footer bar on the bottom, used by search regex input, + # hyperlink URI preview, etc. + # + #footer_bar: + # background: '#c5c8c6' + # foreground: '#1d1f21' + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Normal colors + normal: + black: '#494D64' + red: '#ED8796' + green: '#A6DA95' + yellow: '#EED49F' + blue: '#8AADF4' + magenta: '#F5BDE6' + cyan: '#8BD5CA' + white: '#B8C0E0' + + # Bright colors + bright: + black: '#5B6078' + red: '#ED8796' + green: '#A6DA95' + yellow: '#EED49F' + blue: '#8AADF4' + magenta: '#F5BDE6' + cyan: '#8BD5CA' + white: '#A5ADCB' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + dim: + black: '#131415' + red: '#864343' + green: '#777c44' + yellow: '#9e824c' + blue: '#556a7d' + magenta: '#75617b' + cyan: '#5b7d78' + white: '#828482' + + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '#ff00ff' }` + # + #indexed_colors: [] + + # Transparent cell backgrounds + # + # Whether or not `window.opacity` applies to all cell backgrounds or only to + # the default background. When set to `true` all cells will be transparent + # regardless of their background color. + #transparent_background_colors: false + +# Bell +# +# The bell is rung every time the BEL control character is received. +#bell: + # Visual Bell Animation + # + # Animation effect for flashing the screen when the visual bell is rung. + # + # Values for `animation`: + # - Ease + # - EaseOut + # - EaseOutSine + # - EaseOutQuad + # - EaseOutCubic + # - EaseOutQuart + # - EaseOutQuint + # - EaseOutExpo + # - EaseOutCirc + # - Linear + #animation: EaseOutExpo + + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. + #duration: 0 + + # Visual bell animation color. + #color: '#ffffff' + + # Bell Command + # + # This program is executed whenever the bell is rung. + # + # When set to `command: None`, no command will be executed. + # + # Example: + # command: + # program: notify-send + # args: ["Hello, World!"] + # + #command: None + +#selection: + # This string contains all characters that are used as separators for + # "semantic words" in Alacritty. + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +#cursor: + # Cursor style + #style: + # Cursor shape + # + # Values for `shape`: + # - ▇ Block + # - _ Underline + # - | Beam + #shape: Block + + # Cursor blinking state + # + # Values for `blinking`: + # - Never: Prevent the cursor from ever blinking + # - Off: Disable blinking by default + # - On: Enable blinking by default + # - Always: Force the cursor to always blink + #blinking: Off + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + #vi_mode_style: None + + # Cursor blinking interval in milliseconds. + #blink_interval: 750 + + # Time after which cursor stops blinking, in seconds. + # + # Specifying '0' will disable timeout for blinking. + #blink_timeout: 5 + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + #thickness: 0.15 + +# Live config reload (changes require restart) +#live_config_reload: true + +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. +# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the +# shell. +# +# Default: +# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset +# - (Windows) powershell +#shell: +# program: /bin/bash +# args: +# - --login + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +# Offer IPC using `alacritty msg` (unix only) +#ipc_socket: true + +#mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + #double_click: { threshold: 300 } + #triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + #hide_when_typing: false + +# Hints +# +# Terminal hints can be used to find text or hyperlink in the visible part of +# the terminal and pipe it to other applications. +#hints: + # Keys used for the hint labels. + #alphabet: "jfkdls;ahgurieowpq" + + # List with all available hints + # + # Each hint must have any of `regex` or `hyperlinks` field and either an + # `action` or a `command` field. The fields `mouse`, `binding` and + # `post_processing` are optional. + # + # The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be + # highlighted. + # + # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and + # `mouse.mods` accept the same values as they do in the `key_bindings` section. + # + # The `mouse.enabled` field controls if the hint should be underlined while + # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. + # + # If the `post_processing` field is set to `true`, heuristics will be used to + # shorten the match if there are characters likely not to be part of the hint + # (e.g. a trailing `.`). This is most useful for URIs and applies only to + # `regex` matches. + # + # Values for `action`: + # - Copy + # Copy the hint's text to the clipboard. + # - Paste + # Paste the hint's text to the terminal or search. + # - Select + # Select the hint's text. + # - MoveViModeCursor + # Move the vi mode cursor to the beginning of the hint. + #enabled: + # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + # hyperlinks: true + # command: xdg-open + # post_processing: true + # mouse: + # enabled: true + # mods: None + # binding: + # key: U + # mods: Control|Shift + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty +# captures the mouse, the `Shift` modifier is automatically added as a +# requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings for actions not exclusive to mouse mode) +# +# - Mouse exclusive actions: +# +# - ExpandSelection +# Expand the selection to the current mouse cursor location. +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Right, action: ExpandSelection } +# - { mouse: Right, mods: Control, action: ExpandSelection } +# - { mouse: Middle, mode: ~Vi, action: PasteSelection } + +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - ToggleViMode +# - SearchForward +# Start searching toward the right of the search origin. +# - SearchBackward +# Start searching toward the left of the search origin. +# - Copy +# - Paste +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollHalfPageUp +# - ScrollHalfPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# Remove the terminal's scrollback history. +# - Hide +# Hide the Alacritty window. +# - Minimize +# Minimize the Alacritty window. +# - Quit +# Quit Alacritty. +# - ToggleFullscreen +# - SpawnNewInstance +# Spawn a new instance of Alacritty. +# - CreateNewWindow +# Create a new Alacritty window from the current process. +# - ClearLogNotice +# Clear Alacritty's UI warning and error notice. +# - ClearSelection +# Remove the active selection. +# - ReceiveChar +# - None +# +# - Vi mode exclusive actions: +# +# - Open +# Perform the action of the first matching hint under the vi mode cursor +# with `mouse.enabled` set to `true`. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# - CenterAroundViCursor +# Center view around vi mode cursor +# +# - Vi mode exclusive cursor motion actions: +# +# - Up +# One line up. +# - Down +# One line down. +# - Left +# One character left. +# - Right +# One character right. +# - First +# First column, or beginning of the line when already at the first column. +# - Last +# Last column, or beginning of the line when already at the last column. +# - FirstOccupied +# First non-empty cell in this terminal row, or first non-empty cell of +# the line when already at the first cell of the row. +# - High +# Top of the screen. +# - Middle +# Center of the screen. +# - Low +# Bottom of the screen. +# - SemanticLeft +# Start of the previous semantically separated word. +# - SemanticRight +# Start of the next semantically separated word. +# - SemanticLeftEnd +# End of the previous semantically separated word. +# - SemanticRightEnd +# End of the next semantically separated word. +# - WordLeft +# Start of the previous whitespace separated word. +# - WordRight +# Start of the next whitespace separated word. +# - WordLeftEnd +# End of the previous whitespace separated word. +# - WordRightEnd +# End of the next whitespace separated word. +# - Bracket +# Character matching the bracket at the cursor's location. +# - SearchNext +# Beginning of the next match. +# - SearchPrevious +# Beginning of the previous match. +# - SearchStart +# Start of the match to the left of the vi mode cursor. +# - SearchEnd +# End of the match to the right of the vi mode cursor. +# +# - Search mode exclusive actions: +# - SearchFocusNext +# Move the focus to the next search match. +# - SearchFocusPrevious +# Move the focus to the previous search match. +# - SearchConfirm +# - SearchCancel +# - SearchClear +# Reset the search regex. +# - SearchDeleteWord +# Delete the last word in the search regex. +# - SearchHistoryPrevious +# Go to the previous regex in the search history. +# - SearchHistoryNext +# Go to the next regex in the search history. +# +# - macOS exclusive actions: +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# - Linux/BSD exclusive actions: +# +# - CopySelection +# Copy from the selection buffer. +# - PasteSelection +# Paste from the selection buffer. +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Search +# - Alt +# - Vi +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# in the order they were defined in. +#key_bindings: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } + #- { key: G, mode: Vi|~Search, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi|~Search, action: Copy } + #- { key: Y, mode: Vi|~Search, action: ClearSelection } + #- { key: Copy, mode: Vi|~Search, action: ClearSelection } + #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi|~Search, action: Open } + #- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor } + #- { key: K, mode: Vi|~Search, action: Up } + #- { key: J, mode: Vi|~Search, action: Down } + #- { key: H, mode: Vi|~Search, action: Left } + #- { key: L, mode: Vi|~Search, action: Right } + #- { key: Up, mode: Vi|~Search, action: Up } + #- { key: Down, mode: Vi|~Search, action: Down } + #- { key: Left, mode: Vi|~Search, action: Left } + #- { key: Right, mode: Vi|~Search, action: Right } + #- { key: Key0, mode: Vi|~Search, action: First } + #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last } + #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi|~Search, action: High } + #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle } + #- { key: L, mods: Shift, mode: Vi|~Search, action: Low } + #- { key: B, mode: Vi|~Search, action: SemanticLeft } + #- { key: W, mode: Vi|~Search, action: SemanticRight } + #- { key: E, mode: Vi|~Search, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight } + #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket } + #- { key: Slash, mode: Vi|~Search, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward } + #- { key: N, mode: Vi|~Search, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious } + + # Search Mode + #- { key: Return, mode: Search|Vi, action: SearchConfirm } + #- { key: Escape, mode: Search, action: SearchCancel } + #- { key: C, mods: Control, mode: Search, action: SearchCancel } + #- { key: U, mods: Control, mode: Search, action: SearchClear } + #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord } + #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious } + #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext } + #- { key: Up, mode: Search, action: SearchHistoryPrevious } + #- { key: Down, mode: Search, action: SearchHistoryNext } + #- { key: Return, mode: Search|~Vi, action: SearchFocusNext } + #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward } + #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Plus, mods: Control, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Plus, mods: Command, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: H, mods: Command|Alt, action: HideOtherApplications } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: SpawnNewInstance } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - Off + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false + + # Highlight window damage information. + #highlight_damage: false From 92399b4b1cba32d51c4850c60511fbb989a610b2 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 15:04:13 +0100 Subject: [PATCH 11/15] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'hyprland': 'github:hyprwm/Hyprland/af72404259f7a39069d1449bedbc49b3e6ae4fbc' (2023-10-21) → 'github:hyprwm/Hyprland/73e78f05ad5cafa20ac5bf177c94ac9ecca37097' (2023-11-04) • Updated input 'hyprland/wlroots': 'gitlab:wlroots/wlroots/3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc' (2023-10-04) → 'gitlab:wlroots/wlroots/47bf87ade2bd32395615a385ebde1fefbcdf79a2' (2023-10-21) • Updated input 'hyprland/xdph': 'github:hyprwm/xdg-desktop-portal-hyprland/8f45a6435069b9e24ebd3160eda736d7a391cbf2' (2023-09-13) → 'github:hyprwm/xdg-desktop-portal-hyprland/22e7a65ff9633e1dedfa5317fdffc49f68de2ff2' (2023-10-22) • Updated input 'nixpkgs': 'github:nixos/nixpkgs/679cadfdfed2b90311a247b2d6ef6dfd3d6cab73' (2023-10-20) → 'github:nixos/nixpkgs/621f51253edffa1d6f08d5fce4f08614c852d17e' (2023-11-02) • Updated input 'nixpkgs-unstable': 'github:nixos/nixpkgs/7c9cc5a6e5d38010801741ac830a3f8fd667a7a0' (2023-10-19) → 'github:nixos/nixpkgs/fa804edfb7869c9fb230e174182a8a1a7e512c40' (2023-11-02) • Updated input 'nur': 'github:nix-community/NUR/e750e463d9ecfa3dcd66d2c9aec946c7d9e9d154' (2023-10-21) → 'github:nix-community/NUR/ae4f2079a94ebbf4f3ec66f7d25372de5d4b346d' (2023-11-04) • Updated input 'split-monitor-workspaces': 'github:Duckonaut/split-monitor-workspaces/9b40de35aeb8c62df3326eae7979b438f3ee0fb1' (2023-10-11) → 'github:Duckonaut/split-monitor-workspaces/2b1abdbf9e9de9ee660540167c8f51903fa3d959' (2023-10-24) --- flake.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/flake.lock b/flake.lock index 014b280..46c16d3 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1697151905, - "narHash": "sha256-sfuiRn7D5D2NzDkXXN/DUUcs2d1ddlf3VmzDBzDO2Tk=", + "lastModified": 1699103452, + "narHash": "sha256-7LShDNdqaWKvQ9clkcqWfVQ4gro7g+D15D9OxyAlulY=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "3a61350286de842c7f1566c38e2b42821080ddf4", + "rev": "73e78f05ad5cafa20ac5bf177c94ac9ecca37097", "type": "github" }, "original": { @@ -87,11 +87,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1696983906, - "narHash": "sha256-L7GyeErguS7Pg4h8nK0wGlcUTbfUMDu+HMf1UcyP72k=", + "lastModified": 1698942558, + "narHash": "sha256-/UmnB+mEd6Eg3mJBrAgqRcyZX//RSjHphcCO7Ig9Bpk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bd1cde45c77891214131cbbea5b1203e485a9d51", + "rev": "621f51253edffa1d6f08d5fce4f08614c852d17e", "type": "github" }, "original": { @@ -103,11 +103,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1697059129, - "narHash": "sha256-9NJcFF9CEYPvHJ5ckE8kvINvI84SZZ87PvqMbH6pro0=", + "lastModified": 1698924604, + "narHash": "sha256-GCFbkl2tj8fEZBZCw3Tc0AkGo0v+YrQlohhEGJ/X4s0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5e4c2ada4fcd54b99d56d7bd62f384511a7e2593", + "rev": "fa804edfb7869c9fb230e174182a8a1a7e512c40", "type": "github" }, "original": { @@ -119,11 +119,11 @@ }, "nur": { "locked": { - "lastModified": 1697208312, - "narHash": "sha256-pLhWx1QA0hLBgA7KoOeYWxQYqOUYSdoTAoDEEhMGx80=", + "lastModified": 1699105543, + "narHash": "sha256-ZAArNdE3cO59tIlomzhWPksA4enZ0LoGR7VEtFHYaXI=", "owner": "nix-community", "repo": "NUR", - "rev": "90683b5b6b475583fb307cd9d557e91881dccbcd", + "rev": "ae4f2079a94ebbf4f3ec66f7d25372de5d4b346d", "type": "github" }, "original": { @@ -150,11 +150,11 @@ "nix-filter": "nix-filter" }, "locked": { - "lastModified": 1697056199, - "narHash": "sha256-Tkd4cI4Vq6cczZjiZdfs1Q9Gke+4iL1+S3c2GAGhEvc=", + "lastModified": 1698179193, + "narHash": "sha256-zDW+72enuRGuLLRbO1+pYk8FgRjQrBGksIAOk88OwOI=", "owner": "Duckonaut", "repo": "split-monitor-workspaces", - "rev": "9b40de35aeb8c62df3326eae7979b438f3ee0fb1", + "rev": "2b1abdbf9e9de9ee660540167c8f51903fa3d959", "type": "github" }, "original": { @@ -182,18 +182,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1696410538, - "narHash": "sha256-ecDhdYLXWHsxMv+EWG36mCNDvzRbu9qfjH7dLxL7aGM=", + "lastModified": 1697909146, + "narHash": "sha256-jU0I6FoCKnj4zIBL4daosFWh81U1fM719Z6cae8PxSY=", "owner": "wlroots", "repo": "wlroots", - "rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc", + "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc", + "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", "type": "gitlab" } }, @@ -213,11 +213,11 @@ ] }, "locked": { - "lastModified": 1694628480, - "narHash": "sha256-Qg9hstRw0pvjGu5hStkr2UX1D73RYcQ9Ns/KnZMIm9w=", + "lastModified": 1697981233, + "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "8f45a6435069b9e24ebd3160eda736d7a391cbf2", + "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2", "type": "github" }, "original": { From c13fe5307fa2571e57abff9f2943c9bb0f6df216 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 20:27:34 +0100 Subject: [PATCH 12/15] Revert "flake.lock: Update" This reverts commit 92399b4b1cba32d51c4850c60511fbb989a610b2. --- flake.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/flake.lock b/flake.lock index 46c16d3..014b280 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1699103452, - "narHash": "sha256-7LShDNdqaWKvQ9clkcqWfVQ4gro7g+D15D9OxyAlulY=", + "lastModified": 1697151905, + "narHash": "sha256-sfuiRn7D5D2NzDkXXN/DUUcs2d1ddlf3VmzDBzDO2Tk=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "73e78f05ad5cafa20ac5bf177c94ac9ecca37097", + "rev": "3a61350286de842c7f1566c38e2b42821080ddf4", "type": "github" }, "original": { @@ -87,11 +87,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1698942558, - "narHash": "sha256-/UmnB+mEd6Eg3mJBrAgqRcyZX//RSjHphcCO7Ig9Bpk=", + "lastModified": 1696983906, + "narHash": "sha256-L7GyeErguS7Pg4h8nK0wGlcUTbfUMDu+HMf1UcyP72k=", "owner": "nixos", "repo": "nixpkgs", - "rev": "621f51253edffa1d6f08d5fce4f08614c852d17e", + "rev": "bd1cde45c77891214131cbbea5b1203e485a9d51", "type": "github" }, "original": { @@ -103,11 +103,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1698924604, - "narHash": "sha256-GCFbkl2tj8fEZBZCw3Tc0AkGo0v+YrQlohhEGJ/X4s0=", + "lastModified": 1697059129, + "narHash": "sha256-9NJcFF9CEYPvHJ5ckE8kvINvI84SZZ87PvqMbH6pro0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fa804edfb7869c9fb230e174182a8a1a7e512c40", + "rev": "5e4c2ada4fcd54b99d56d7bd62f384511a7e2593", "type": "github" }, "original": { @@ -119,11 +119,11 @@ }, "nur": { "locked": { - "lastModified": 1699105543, - "narHash": "sha256-ZAArNdE3cO59tIlomzhWPksA4enZ0LoGR7VEtFHYaXI=", + "lastModified": 1697208312, + "narHash": "sha256-pLhWx1QA0hLBgA7KoOeYWxQYqOUYSdoTAoDEEhMGx80=", "owner": "nix-community", "repo": "NUR", - "rev": "ae4f2079a94ebbf4f3ec66f7d25372de5d4b346d", + "rev": "90683b5b6b475583fb307cd9d557e91881dccbcd", "type": "github" }, "original": { @@ -150,11 +150,11 @@ "nix-filter": "nix-filter" }, "locked": { - "lastModified": 1698179193, - "narHash": "sha256-zDW+72enuRGuLLRbO1+pYk8FgRjQrBGksIAOk88OwOI=", + "lastModified": 1697056199, + "narHash": "sha256-Tkd4cI4Vq6cczZjiZdfs1Q9Gke+4iL1+S3c2GAGhEvc=", "owner": "Duckonaut", "repo": "split-monitor-workspaces", - "rev": "2b1abdbf9e9de9ee660540167c8f51903fa3d959", + "rev": "9b40de35aeb8c62df3326eae7979b438f3ee0fb1", "type": "github" }, "original": { @@ -182,18 +182,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1697909146, - "narHash": "sha256-jU0I6FoCKnj4zIBL4daosFWh81U1fM719Z6cae8PxSY=", + "lastModified": 1696410538, + "narHash": "sha256-ecDhdYLXWHsxMv+EWG36mCNDvzRbu9qfjH7dLxL7aGM=", "owner": "wlroots", "repo": "wlroots", - "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", + "rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", + "rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc", "type": "gitlab" } }, @@ -213,11 +213,11 @@ ] }, "locked": { - "lastModified": 1697981233, - "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=", + "lastModified": 1694628480, + "narHash": "sha256-Qg9hstRw0pvjGu5hStkr2UX1D73RYcQ9Ns/KnZMIm9w=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2", + "rev": "8f45a6435069b9e24ebd3160eda736d7a391cbf2", "type": "github" }, "original": { From ee28bcc034f696b82c31ff4da38fc86939385802 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sat, 4 Nov 2023 20:32:06 +0100 Subject: [PATCH 13/15] Add jellyfin media player --- hosts/configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 40c6bb8..36714d3 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -126,6 +126,7 @@ pavucontrol # Audio Control pipewire # Audio Server/Control pulseaudio # Audio Server/Control + jellyfin-media-player # Apps appimage-run # Runs AppImages on NixOS From a09a40f5de8763cf0d5871b43eb928ff974d3e11 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sun, 5 Nov 2023 10:08:29 +0100 Subject: [PATCH 14/15] Add xournalpp to default config --- hosts/configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 36714d3..0ffa11a 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -159,6 +159,7 @@ feishin sddm electron-mail + xournalpp ]); }; From 70ba2670b3c9e00ee306b0743efe5062708b2f40 Mon Sep 17 00:00:00 2001 From: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Sun, 5 Nov 2023 12:06:33 +0100 Subject: [PATCH 15/15] Add vscode autosuggest vim navigation --- modules/coding/vscode.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/modules/coding/vscode.nix b/modules/coding/vscode.nix index 14f3de1..ab4033a 100644 --- a/modules/coding/vscode.nix +++ b/modules/coding/vscode.nix @@ -33,7 +33,32 @@ in { "extensions.autoUpdate" = false; # Startup "workbench.startupEditor" = "none"; + # Vim + "editor.lineNumbers" = "relative"; }; + keybindings = [ + # Navigating Autosuggest and Quick Open entries + { + "key" = "ctrl+j"; + "command" = "selectNextSuggestion"; + "when" = "suggestWidgetVisible"; + } + { + "key" = "ctrl+k"; + "command" = "selectPrevSuggestion"; + "when" = "suggestWidgetVisible"; + } + { + "key" = "ctrl+j"; + "command" = "workbench.action.quickOpenSelectNext"; + "when" = "inQuickOpen"; + } + { + "key" = "ctrl+k"; + "command" = "workbench.action.quickOpenSelectPrevious"; + "when" = "inQuickOpen"; + } + ]; }; };