diff --git a/.config/nixpkgs/home.nix b/.config/nixpkgs/home.nix index abd9bbe..51ccc94 100644 --- a/.config/nixpkgs/home.nix +++ b/.config/nixpkgs/home.nix @@ -9,6 +9,7 @@ let }) {}).package; in { nixpkgs.config.allowUnfree = true; + news.display = "silent"; home = { username = "lyla"; homeDirectory = "/home/lyla"; @@ -16,18 +17,23 @@ in { sessionVariables = { EDITOR = "kak"; }; + extraOutputsToInstall = [ "doc" ]; packages = with pkgs; [ # CLI tools xclip neofetch exa fd ripgrep + pandoc signify # editor - kak-lsp parinfer-rust rnix-lsp + kak-lsp parinfer-rust rnix-lsp zig-master # nix tools - nixfmt niv cargo2nix + nixfmt niv cargo2nix cachix # gui zoom-us libreoffice - transmission-gtk + transmission-gtk luakit ]; + file = { + ".tmux.conf".source = ~/etc/tmux.conf; + }; }; programs = { @@ -57,14 +63,10 @@ in { kakoune = let lspFiletypes = [ "zig" "rust" "c" "cpp" "nix" ]; tabSettings = [ - { - filetype = [ "zig" "rust" "nix" ]; - tab = "expandtab"; - } - { - filetype = [ "c" "cpp" ]; - tab = "smarttab"; - } + { filetype = [ "zig" "rust" "nix" ]; + tab = "expandtab"; } + { filetype = [ "c" "cpp" ]; + tab = "smarttab"; } ]; in { enable = true; @@ -129,27 +131,10 @@ in { }; extraConfig = '' add-highlighter global/ regex \b(TODO|FIXME|XXX|NOTE)\b 0:default+rb - - # kak-lsp initialization eval %sh{kak-lsp --kakoune -s $kak_session} hook global WinSetOption filetype=(${builtins.concatStringsSep "|" lspFiletypes}) %{ map buffer user l ': enter-user-mode lsp' -docstring 'LSP mode' lsp-enable-window - #hook window -group semantic-tokens BufReload .* lsp-semantic-tokens - #hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens - #hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens - #hook -once -always window WinSetOption filetype=.* %{ - # remove-hooks window semantic-tokens - #} - } - define-command ide -params 0..1 %{ - try %{ rename-session %arg{1} } - rename-client main - set-option global jumpclient main - new rename-client tools - set-option global toolsclient tools - new rename-client docs - set-option global docsclient docs } ''; }; @@ -162,7 +147,9 @@ in { xdg = { dataFile = { # compile ZLS and copy the binaries manually to ~/.local/share/zls - # TODO: get ZLS to compile with Nix. + # TODO: get ZLS to compile with Nix, this would allow shell environments + # using Zig as a dependency to use ZLS alongside it without cluttering the + # user environment. "zls/zls.json".text = '' { "zig_lib_path": "${zig-master}/lib/zig/", @@ -173,12 +160,10 @@ in { } ''; }; - configFile = { "kak-lsp/kak-lsp.toml".source = ~/etc/kak-lsp.toml; - "../.tmux.conf".source = ~/etc/tmux.conf; + "luakit/userconf.lua".source = ~/etc/luakit/userconf.lua; }; - userDirs = { enable = true; desktop = "$HOME/usr"; diff --git a/etc/configuration.nix b/etc/configuration.nix new file mode 100644 index 0000000..c601e51 --- /dev/null +++ b/etc/configuration.nix @@ -0,0 +1,158 @@ +{ config, pkgs, ... }: + +{ + imports = [ + + + + ./hardware-configuration.nix + ]; + + nix = { + trustedUsers = [ "root" "lyla" ]; + allowedUsers = [ "root" "lyla" ]; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + }; + nixpkgs.config = { + allowUnfree = true; + }; + + boot = { + loader.grub = { + enable = true; + version = 2; + device = "/dev/sda"; + }; + plymouth.enable = true; + cleanTmpDir = true; + }; + + security = { + sudo = { + enable = true; + wheelNeedsPassword = false; + }; + }; + + networking = { + hostName = "crow"; + networkmanager.enable = true; + }; + + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "la-latin1"; + }; + + time.timeZone = "America/Santiago"; + location = { + latitude = -29.909349; + longitude = -71.250038; + }; + + environment = { + homeBinInPath = true; + systemPackages = with pkgs; [ + # CLI utils + wget usbutils + # audio + qjackctl + ]; + }; + + fonts = { + fonts = with pkgs; [ + noto-fonts noto-fonts-cjk noto-fonts-emoji + inter mononoki tamzen + ]; + fontconfig = { + enable = true; + subpixel.rgba = "none"; + defaultFonts = { + sansSerif = [ "Inter" "Noto Sans" ]; + serif = [ "Noto Serif" ]; + monospace = [ "mononoki" ]; + }; + }; + }; + + sound.enable = true; + + musnix = { + enable = true; + alsaSeq.enable = true; + kernel = { + optimize = true; + realtime = true; + packages = pkgs.linuxPackages_latest_rt; + }; + das_watchdog.enable = true; + }; + + hardware = { + # enableAllFirmware = true; + bluetooth.enable = true; + pulseaudio = { + enable = true; + package = pkgs.pulseaudioFull; + }; + opengl.enable = true; + }; + + programs = { + adb.enable = true; + tmux.enable = true; + slock.enable = true; + fish.enable = true; + }; + + services = { + blueman.enable = true; + jack = { + jackd.enable = true; + alsa.enable = true; + }; + xserver = { + enable = true; + layout = "latam"; + libinput.enable = true; + displayManager = { + autoLogin = { + enable = true; + user = "lyla"; + }; + lightdm = { + enable = true; + }; + }; + desktopManager.xfce = { + enable = true; + thunarPlugins = with pkgs.xfce; [ + thunar-volman thunar-archive-plugin + ]; + }; + }; + picom = { + enable = true; + shadow = false; + menuOpacity = 0.9; + inactiveOpacity = 0.95; + backend = "glx"; + experimentalBackends = true; + }; + redshift.enable = true; + }; + + users = { + mutableUsers = false; + users.lyla = (import ./users/lyla.nix) pkgs; + }; + + system.stateVersion = "21.03"; +} + diff --git a/etc/luakit/userconf.lua b/etc/luakit/userconf.lua new file mode 100644 index 0000000..058b0b5 --- /dev/null +++ b/etc/luakit/userconf.lua @@ -0,0 +1,3 @@ +local settings = require "settings" +settings.window.home_page = "google.com" +