diff --git a/configuration.nix b/configuration.nix index 2c9bed0..79bd649 100644 --- a/configuration.nix +++ b/configuration.nix @@ -90,7 +90,7 @@ in # DVORAK + NO layout = "us,no"; xkbVariant = "dvp,"; - xkbOptions = "compose:menu, grp:alt_shift_toggle"; + xkbOptions = "compose:menu, grp:alt_shift_toggle, lv3:ralt_switch"; windowManager = { xmonad = { @@ -173,6 +173,7 @@ in haskellPackages.xmobar feh trayer + xclip # xorg.xbacklight # htop ]); @@ -263,5 +264,32 @@ in lidSwitch = "hybrid-sleep"; powerKey = "hibernate"; }; + + fonts = { + packages = with pkgs; [ + (nerdfonts.override { fonts = [ "FiraCode" "Monoid" ]; }) + ]; + + fontconfig = { + defaultFonts = { + monospace = [ "Monoid" ]; + }; + }; + }; + + # video acceleration + # nixpkgs.config.packageOverrides = pkgs: { + # intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; }; + # }; + # hardware.opengl = { # hardware.graphics on unstable + # enable = true; + # extraPackages = with pkgs; [ + # intel-media-driver # LIBVA_DRIVER_NAME=iHD + # intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) + # libvdpau-va-gl + # ]; + # }; + # environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Force intel-media-driver + } diff --git a/home.nix b/home.nix index 3aac0e1..eecbc8f 100644 --- a/home.nix +++ b/home.nix @@ -155,19 +155,29 @@ ]; window = { - completion = {border = "solid";}; - documentation = {border = "solid";}; + completion = { + winhighlight = "FloatBorder:CmpBorder,Normal:CmpPmenu,CursorLine:CmpSel,Search:PmenuSel"; + scrollbar = false; + sidePadding = 0; + border = [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]; + }; + + settings.documentation = { + border = [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]; + winhighlight = "FloatBorder:CmpBorder,Normal:CmpPmenu,CursorLine:CmpSel,Search:PmenuSel"; + }; }; mapping = { - "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; + "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; + "" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; "" = "cmp.mapping.select_next_item()"; "" = "cmp.mapping.select_prev_item()"; "" = "cmp.mapping.abort()"; "" = "cmp.mapping.scroll_docs(-4)"; "" = "cmp.mapping.scroll_docs(4)"; "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.confirm({ select = true })"; + "" = "cmp.mapping.confirm({ select = true })"; "" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })"; }; }; @@ -177,22 +187,55 @@ cmp-buffer = {enable = true;}; cmp-path = {enable = true;}; # file system paths cmp_luasnip = {enable = true;}; # snippets - cmp-cmdline = {enable = false;}; # autocomplete for cmdline + cmp-cmdline = {enable = true;}; # autocomplete for cmdline + lsp = { enable = true; keymaps = { + silent = true; diagnostic = { "j" = "goto_next"; "k" = "goto_prev"; "e" = "open_float"; }; lspBuf = { - K = "hover"; - gD = "references"; - gd = "definition"; - gi = "implementation"; - gt = "type_definition"; + gd = { + action = "definition"; + desc = "Goto Definition"; + }; + gr = { + action = "references"; + desc = "Goto References"; + }; + gD = { + action = "declaration"; + desc = "Goto Declaration"; + }; + gI = { + action = "implementation"; + desc = "Goto Implementation"; + }; + gT = { + action = "type_definition"; + desc = "Type Definition"; + }; + K = { + action = "hover"; + desc = "Hover"; + }; + "cw" = { + action = "workspace_symbol"; + desc = "Workspace Symbol"; + }; + "cr" = { + action = "rename"; + desc = "Rename"; + }; + "ca" = { + action = "code_action"; + desc = "code action"; + }; }; }; servers = { @@ -231,6 +274,37 @@ which-key.enable = true; }; + extraConfigLua = '' + luasnip = require("luasnip") + + kind_icons = { + Text = "󰊄", + Method = "", + Function = "󰡱", + Constructor = "", + Field = "", + Variable = "󱀍", + Class = "", + Interface = "", + Module = "󰕳", + Property = "", + Unit = "", + Value = "", + Enum = "", + Keyword = "", + Snippet = "", + Color = "", + File = "", + Reference = "", + Folder = "", + EnumMember = "", + Constant = "", + Struct = "", + Event = "", + Operator = "", + TypeParameter = "", + } + ''; }; programs.zsh = { @@ -256,6 +330,14 @@ suspend = "systemctl suspend"; logout = "sudo pkill -u fredrikr"; }; + + defaultKeymap = "viins"; + initExtra = '' + bindkey -v + bindkey -M viins 'jk' vi-cmd-mode + ''; + + zsh-abbr.enable = true; }; programs.git = {