diff --git a/flake.lock b/flake.lock index 8d9ae31..a491a0f 100644 --- a/flake.lock +++ b/flake.lock @@ -68,6 +68,24 @@ "type": "github" } }, + "base16_2": { + "inputs": { + "fromYaml": "fromYaml_2" + }, + "locked": { + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -103,16 +121,16 @@ "flake-parts": { "inputs": { "nixpkgs-lib": [ - "nixvim", + "neovim-nightly-overlay", "nixpkgs" ] }, "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "type": "github" }, "original": { @@ -176,6 +194,22 @@ "type": "github" } }, + "fromYaml_2": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -224,11 +258,11 @@ ] }, "locked": { - "lastModified": 1771269455, - "narHash": "sha256-BZ31eN5F99YH6vkc4AhzKGE+tJgJ52kl8f01K7wCs8w=", + "lastModified": 1769776025, + "narHash": "sha256-70a1kVC08AMTvPc7iqQsJbbD4Y1fukakMVudz4oY9SM=", "owner": "nix-community", "repo": "home-manager", - "rev": "5f1d42a97b19803041434f66681d5c44c9ae62e3", + "rev": "0fba737f8d5571d41467f3d99a878e11b8c0f0f0", "type": "github" }, "original": { @@ -245,11 +279,11 @@ ] }, "locked": { - "lastModified": 1771102945, - "narHash": "sha256-e5NfW8NhC3qChR8bHVni/asrig/ZFzd1wzpq+cEE/tg=", + "lastModified": 1768434960, + "narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=", "owner": "nix-community", "repo": "home-manager", - "rev": "ff5e5d882c51f9a032479595cbab40fd04f56399", + "rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b", "type": "github" }, "original": { @@ -258,6 +292,42 @@ "type": "github" } }, + "neovim-nightly-overlay": { + "inputs": { + "flake-parts": "flake-parts", + "neovim-src": "neovim-src", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1769731486, + "narHash": "sha256-FubWXQX1k1qyVKWiGNVSw2bQ2TD739PRqRsLXS/b2y0=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "0d454d45604a3215057806757beda9bc7390d59e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "neovim-src": { + "flake": false, + "locked": { + "lastModified": 1769723720, + "narHash": "sha256-gmlHBj1nGfOBaCMEfgHdy/4sbuBXDaVIWNGJVPP+vNw=", + "owner": "neovim", + "repo": "neovim", + "rev": "52cd9dcff260decda860cf154873b298d10c1208", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, "nix-wallpaper": { "inputs": { "flake-utils": "flake-utils", @@ -267,11 +337,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1769821964, - "narHash": "sha256-WcfoLCZbo32Psw2mP9bF8uHCF50SMAhQFkWq+/+Z9B0=", + "lastModified": 1769120060, + "narHash": "sha256-tolMUwGXDZ7i6Vl2tUA2qpx2ElzgUNcmIHSRetCOlyU=", "owner": "lunik1", "repo": "nix-wallpaper", - "rev": "f658947fdc9ab85be9003deb26632a464bd41e5d", + "rev": "6cac16b301d5cdfa299224182b8891c7fd31b437", "type": "github" }, "original": { @@ -282,11 +352,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1771008912, - "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", + "lastModified": 1769527094, + "narHash": "sha256-xV20Alb7ZGN7qujnsi5lG1NckSUmpIb05H2Xar73TDc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a82ccc39b39b621151d6732718e3e250109076fa", + "rev": "afce96367b2e37fc29afb5543573cd49db3357b7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", "type": "github" }, "original": { @@ -296,28 +382,6 @@ "type": "github" } }, - "nixvim": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems_2" - }, - "locked": { - "lastModified": 1771135771, - "narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=", - "owner": "nix-community", - "repo": "nixvim", - "rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixvim", - "type": "github" - } - }, "nur": { "inputs": { "flake-parts": [ @@ -368,17 +432,18 @@ }, "root": { "inputs": { + "base16": "base16", "home-manager": "home-manager", + "neovim-nightly-overlay": "neovim-nightly-overlay", "nix-wallpaper": "nix-wallpaper", - "nixpkgs": "nixpkgs", - "nixvim": "nixvim", + "nixpkgs": "nixpkgs_2", "stylix": "stylix", "zen-browser": "zen-browser" } }, "stylix": { "inputs": { - "base16": "base16", + "base16": "base16_2", "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", @@ -389,7 +454,7 @@ "nixpkgs" ], "nur": "nur", - "systems": "systems_3", + "systems": "systems_2", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -397,11 +462,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1771330061, - "narHash": "sha256-qBWXy3mSOEYjvZB/RZHT0joVPhNWU8GQZQljLzyMTq0=", + "lastModified": 1769782950, + "narHash": "sha256-bMJPPDyG/BV7Qx0r5JuO9oQG/o/VlnEOFnC8zKhJsBQ=", "owner": "danth", "repo": "stylix", - "rev": "fa45bf2d70517a8643a0edb44b02b8e6c0453d06", + "rev": "aad90ca763be126c0ed67c29826bbb9b5ca665d8", "type": "github" }, "original": { @@ -440,21 +505,6 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "tinted-foot": { "flake": false, "locked": { @@ -544,11 +594,11 @@ ] }, "locked": { - "lastModified": 1771303996, - "narHash": "sha256-cwf75uTx8cGJCP+nohi7iVTE+lmfevBxNgirkMLkuEY=", + "lastModified": 1769748063, + "narHash": "sha256-H5XCtJMS3RQKHeaS+axX7CAJ0WwuTUYGy4uzLFSm0Xc=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "a7659a805bda3ae8e4861572d8dc0f1d29f3fc3c", + "rev": "efdd1e683da9412f515b9bd42c37861978c2fd3a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 25b6242..777bc56 100644 --- a/flake.nix +++ b/flake.nix @@ -6,14 +6,14 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixvim = { - url = "github:nix-community/nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; + base16 = { + url = "github:SenchoPens/base16.nix"; + }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; @@ -45,9 +45,9 @@ hostName = "february"; inherit userName; inherit inputs; - }; - modules = [ ./host/pc/february/configuration.nix ]; + modules = [ ./host/pc/february/configuration.nix ]; + }; }; "march" = inputs.nixpkgs.lib.nixosSystem { diff --git a/home/pc/common/clangd.nix b/home/pc/common/clangd.nix index 9ca1389..444ae02 100644 --- a/home/pc/common/clangd.nix +++ b/home/pc/common/clangd.nix @@ -1,37 +1,11 @@ -{pkgs, ...}: +{ pkgs, ... }: { - home.packages = with pkgs; [ - clang - ]; - - home.file.".clang-format".text = '' ---- -BasedOnStyle: WebKit -AlignAfterOpenBracket: Align -BraceWrapping: - AfterCaseLabel: true - AfterClass: true - AfterControlStatement: Always - AfterEnum: true - AfterFunction: true - AfterNamespace: true - AfterObjCDeclaration: true - AfterStruct: true - AfterUnion: true - AfterExternBlock: true - BeforeCatch: true - BeforeElse: true - BeforeLambdaBody: true - BeforeWhile: true - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakBeforeBraces: Custom -ColumnLimit: 80 -IndentCaseLabels: true -InsertBraces: true -TabWidth: 4 - - ''; + home.file.".clang-format".text = '' + --- + BasedOnStyle: LLVM + ColumnLimit: 80 + IndentCaseLabels: true + InsertBraces: true + IndentWidth: 4 + ''; } diff --git a/home/pc/common/home.nix b/home/pc/common/home.nix index 3592249..2852ffe 100644 --- a/home/pc/common/home.nix +++ b/home/pc/common/home.nix @@ -3,16 +3,13 @@ imports = [ inputs.nixvim.homeModules.nixvim inputs.zen-browser.homeModules.default - #inputs.stylix.homeModules.stylix ./programs ./clangd.nix - ./hyprland.nix ./packages.nix ./xdg.nix ]; - home.username = "autumn"; home.homeDirectory = "/home/autumn"; home.stateVersion = "25.05"; diff --git a/home/pc/common/hyprland.nix b/home/pc/common/hyprland.nix deleted file mode 100644 index b180dc6..0000000 --- a/home/pc/common/hyprland.nix +++ /dev/null @@ -1,153 +0,0 @@ -{ config, pkgs, ... }: -{ - home.packages = with pkgs; [ - hyprpicker - swww - ]; - - home.file.".config/hypr/hyprland.conf".text = '' - $mainMod=SUPER - $menu=rofi -show drun - $powerMenu=rofi -show power-menu -modi "power-menu:rofi-power-menu --choices lockscreen/suspend/reboot/shutdown" - $switchThemes=rofi -show switch-theme -modes "switch-theme:/etc/nixos/home/pc/common/programs/rofi/scripts/switch-theme.sh" - $screenshot=slurp | grim -g - - | wl-copy - $terminal=kitty - animations { - bezier=myBezier, 0.05, 0.9, 0.1, 1.05 - animation=windows, 1, 7, myBezier - animation=windowsOut, 1, 7, default, popin 80% - animation=border, 1, 10, default - animation=borderangle, 1, 8, default - animation=fade, 1, 7, default - animation=workspaces, 1, 6, default - enabled=true - } - - decoration { - blur { - enabled=yes - ignore_opacity=on - new_optimizations=on - passes=3 - size=6 - special=true - xray=false - } - # active_opacity=1.000000 - # inactive_opacity=1.000000 - rounding=10 - shadow { - color=rgba(00000099) - enabled=true - range=4 - render_power=3 - } - } - - dwindle { - preserve_split=true - pseudotile=true - } - - xwayland { - force_zero_scaling=true - } - - general { - allow_tearing=false - border_size=2 - col.active_border=rgb(${config.stylix.base16Scheme.palette.base0D}) - col.inactive_border=rgba(595959aa) - gaps_in=5 - gaps_out=10 - layout=dwindle - resize_on_border=false - } - - input { - touchpad { - natural_scroll=true - disable_while_typing=0 - } - - kb_layout=us - } - - misc { - disable_hyprland_logo=true - force_default_wallpaper=0 - } - - workspace = 1, monitor:HDMI-A-2 - workspace = 2, monitor:DP-2 - monitor = DP-2, 2560x1440@180, 0x0, 1#, bitdepth, 10, cm, hdr - #monitor = DP-2, 1920x1080@180, 0x0, 1#, bitdepth, 10, cm, hdr - monitor = HDMI-A-2, 1920x1080@60, 2560x0, 1 - - bind=$mainMod, Q, exec, $terminal - bind=$mainMod, C, killactive - bind=$mainMod, M, exit - bind=$mainMod, V, togglefloating - bind=$mainMod, D, exec, $menu - bind=$mainMod, H, exec, $switchThemes - bind=$mainMod, P, pseudo - bind=$mainMod, T, togglesplit - bind=$mainMod, S, exec, $screenshot - bind=$mainMod SHIFT, P, exec, $powerMenu - bind=$mainMod SHIFT, S, exec, $screenshot - bind=$mainMod, F, fullscreen - bind=$mainMod, left, movefocus, l - bind=$mainMod, right, movefocus, r - bind=$mainMod, up, movefocus, u - bind=$mainMod, down, movefocus, d - bind=$mainMod, H, movefocus, l - bind=$mainMod, L, movefocus, r - bind=$mainMod, K, movefocus, u - bind=$mainMod, J, movefocus, d - bind=$mainMod SHIFT, H, movewindow, l - bind=$mainMod SHIFT, L, movewindow, r - bind=$mainMod SHIFT, K, movewindow, u - bind=$mainMod SHIFT, J, movewindow, d - bind=$mainMod SHIFT, left, movewindow, l - bind=$mainMod SHIFT, right, movewindow, r - bind=$mainMod SHIFT, up, movewindow, u - bind=$mainMod SHIFT, down, movewindow, d - bind=$mainMod, 1, workspace, 1 - bind=$mainMod, 2, workspace, 2 - bind=$mainMod, 3, workspace, 3 - bind=$mainMod, 4, workspace, 4 - bind=$mainMod, 5, workspace, 5 - bind=$mainMod, 6, workspace, 6 - bind=$mainMod, 7, workspace, 7 - bind=$mainMod, 8, workspace, 8 - bind=$mainMod, 9, workspace, 9 - bind=$mainMod, 0, workspace, 10 - bind=$mainMod SHIFT, 1, movetoworkspace, 1 - bind=$mainMod SHIFT, 2, movetoworkspace, 2 - bind=$mainMod SHIFT, 3, movetoworkspace, 3 - bind=$mainMod SHIFT, 4, movetoworkspace, 4 - bind=$mainMod SHIFT, 5, movetoworkspace, 5 - bind=$mainMod SHIFT, 6, movetoworkspace, 6 - bind=$mainMod SHIFT, 7, movetoworkspace, 7 - bind=$mainMod SHIFT, 8, movetoworkspace, 8 - bind=$mainMod SHIFT, 9, movetoworkspace, 9 - bind=$mainMod SHIFT, 0, movetoworkspace, 10 - bind=$mainMod, mouse_down, workspace, e+1 - bind=$mainMod, mouse_up, workspace, e-1 - bindm=$mainMod, mouse:272, movewindow - bindm=$mainMod, mouse:273, resizewindow - - env=XCURSOR_SIZE,24 - env=HYPRCURSOR_SIZE,24 - - exec-once=swww-daemon - exec=swww img ${config.stylix.image} -t none - exec-once=waybar - exec=pkill waybar; waybar - - windowrulev2=suppressevent maximize, class:.* - #windowrulev2 = opacity 0.9, class:(com.mitchellh.ghostty) - - layerrule = noanim, selection - ''; -} diff --git a/home/pc/common/packages.nix b/home/pc/common/packages.nix index a0a2d89..7fe55a6 100644 --- a/home/pc/common/packages.nix +++ b/home/pc/common/packages.nix @@ -12,10 +12,13 @@ gimp3-with-plugins grim killall + krita lazygit + libreoffice libresprite man-pages man-pages-posix + obs-studio python3 ripgrep rusty-man @@ -23,7 +26,10 @@ tor-browser unzip vial + virtualboxKvm vlc wl-clipboard + xdg-desktop-portal + xdg-desktop-portal-wlr ]; } diff --git a/home/pc/common/programs/default.nix b/home/pc/common/programs/default.nix index 06232a9..3466570 100644 --- a/home/pc/common/programs/default.nix +++ b/home/pc/common/programs/default.nix @@ -11,9 +11,6 @@ ./hyfetch.nix ./mako.nix ./ncspot.nix - ./nix-search-tv.nix - #./nushell.nix - ./starship.nix ./tmux.nix ./vesktop.nix ./waybar.nix diff --git a/home/pc/common/programs/nix-search-tv.nix b/home/pc/common/programs/nix-search-tv.nix deleted file mode 100644 index ef12a6d..0000000 --- a/home/pc/common/programs/nix-search-tv.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -{ - programs.television.enable = true; - programs.nix-search-tv = { - enable = true; - enableTelevisionIntegration = true; - }; -} diff --git a/home/pc/common/programs/nushell.nix b/home/pc/common/programs/nushell.nix deleted file mode 100644 index d222bec..0000000 --- a/home/pc/common/programs/nushell.nix +++ /dev/null @@ -1,223 +0,0 @@ -{ config, pkgs, ... }: -{ - home.packages = [ pkgs.nix-your-shell ]; - - programs.nushell = { - enable = true; - plugins = with pkgs.nushellPlugins; [ - formats - polars - gstat - query - ]; - settings = { - show_banner = false; - edit_mode = "vi"; - cursor_shape = { - emacs = "line"; - vi_insert = "line"; - vi_normal = "block"; - }; - }; - shellAliases = { - c = "clear"; - meow = "_meow"; - - hf = "nix flake update --flake ${config.home.homeDirectory}/.config/home-manager"; - hs = "nh home switch ~/.config/home-manager"; - hz = "z ~/.config/home-manager"; - - nsu = "_nsu"; - ns = "sudo nixos-rebuild switch"; - - se = "sudoedit"; - v = "nvim"; - }; - extraConfig = with config.stylix.base16Scheme.palette; '' - def _meow () { - clear - hyfetch - } - - def _nsu () { - sudo nix-channel --add https://channels.nixos.org/nixos-unstable nixos - sudo nixos-rebuild switch --upgrade - } - - def _nix_your_shell (command: string, args: list) { - if not (which nix-your-shell | is-empty) { - let args = ["--"] ++ $args - run-external nix-your-shell nu $command ...$args - } else { - run-external $command ...$args - } - } - - def --wrapped nix-shell (...args) { - _nix_your_shell nix-shell $args - } - - def --wrapped nix (...args) { - _nix_your_shell nix $args - } - - - let theme = { - base00: "#${base00}" - base01: "#${base01}" - base02: "#${base02}" - base03: "#${base03}" - base04: "#${base04}" - base05: "#${base05}" - base06: "#${base06}" - base07: "#${base07}" - base08: "#${base08}" - base09: "#${base09}" - base0A: "#${base0A}" - base0B: "#${base0B}" - base0C: "#${base0C}" - base0D: "#${base0D}" - base0E: "#${base0E}" - base0F: "#${base0F}" - } - - let scheme = { - recognized_command: $theme.base0D - unrecognized_command: $theme.base08 - constant: $theme.base09 - punctuation: $theme.base04 - operator: $theme.base0C - string: $theme.base0B - virtual_text: $theme.base04 - variable: { fg: $theme.base0F attr: i } - filepath: $theme.base0A - } - - $env.config.color_config = { - separator: { fg: $theme.base04 attr: b } - leading_trailing_space_bg: { fg: $theme.base07 attr: u } - header: { fg: $theme.base05 attr: b } - row_index: $scheme.virtual_text - record: $theme.base05 - list: $theme.base05 - hints: $scheme.virtual_text - search_result: { fg: $theme.base00 bg: $theme.base0A } - shape_closure: $theme.base0C - closure: $theme.base0C - shape_flag: { fg: $theme.base08 attr: i } - shape_matching_brackets: { attr: u } - shape_garbage: $theme.base08 - shape_keyword: $theme.base0E - shape_match_pattern: $theme.base0B - shape_signature: $theme.base0C - shape_table: $scheme.punctuation - cell-path: $scheme.punctuation - shape_list: $scheme.punctuation - shape_record: $scheme.punctuation - shape_vardecl: $scheme.variable - shape_variable: $scheme.variable - empty: { attr: n } - filesize: {|| - if $in < 1kb { - $theme.base0C - } else if $in < 10kb { - $theme.base0B - } else if $in < 100kb { - $theme.base0A - } else if $in < 10mb { - $theme.base09 - } else if $in < 100mb { - $theme.base08 - } else if $in < 1gb { - $theme.base08 - } else { - $theme.base0E - } - } - duration: {|| - if $in < 1day { - $theme.base0C - } else if $in < 1wk { - $theme.base0B - } else if $in < 4wk { - $theme.base0A - } else if $in < 12wk { - $theme.base09 - } else if $in < 24wk { - $theme.base08 - } else if $in < 52wk { - $theme.base08 - } else { - $theme.base0E - } - } - date: {|| (date now) - $in | - if $in < 1day { - $theme.base0C - } else if $in < 1wk { - $theme.base0B - } else if $in < 4wk { - $theme.base0A - } else if $in < 12wk { - $theme.base09 - } else if $in < 24wk { - $theme.base08 - } else if $in < 52wk { - $theme.base08 - } else { - $theme.base0E - } - } - shape_external: $scheme.unrecognized_command - shape_internalcall: $scheme.recognized_command - shape_external_resolved: $scheme.recognized_command - shape_block: $scheme.recognized_command - block: $scheme.recognized_command - shape_custom: $theme.base0F - custom: $theme.base0F - background: $theme.base00 - foreground: $theme.base05 - cursor: { bg: $theme.base06 fg: $theme.base00 } - shape_range: $scheme.operator - range: $scheme.operator - shape_pipe: $scheme.operator - shape_operator: $scheme.operator - shape_base08irection: $scheme.operator - glob: $scheme.filepath - shape_directory: $scheme.filepath - shape_filepath: $scheme.filepath - shape_glob_interpolation: $scheme.filepath - shape_globpattern: $scheme.filepath - shape_int: $scheme.constant - int: $scheme.constant - bool: $scheme.constant - float: $scheme.constant - nothing: $scheme.constant - binary: $scheme.constant - shape_nothing: $scheme.constant - shape_bool: $scheme.constant - shape_float: $scheme.constant - shape_binary: $scheme.constant - shape_datetime: $scheme.constant - shape_literal: $scheme.constant - string: $scheme.string - shape_string: $scheme.string - shape_string_interpolation: $theme.base0F - shape_raw_string: $scheme.string - shape_externalarg: $scheme.string - } - $env.config.highlight_resolved_externals = true - $env.config.explore = { - status_bar_background: { fg: $theme.base05, bg: $theme.base01 }, - command_bar_text: { fg: $theme.base05 }, - highlight: { fg: $theme.base00, bg: $theme.base0A }, - status: { - error: $theme.base08, - warn: $theme.base0A, - info: $theme.base0D, - }, - selected_cell: { bg: $theme.base0D fg: $theme.base00 }, - } - ''; - }; -} diff --git a/home/pc/common/programs/nvim/cmp/default.nix b/home/pc/common/programs/nvim/cmp/default.nix deleted file mode 100644 index a4a8c4f..0000000 --- a/home/pc/common/programs/nvim/cmp/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{...}: { - imports = [ - ./lsp.nix - ./none-ls.nix - ]; -} diff --git a/home/pc/common/programs/nvim/cmp/lsp.nix b/home/pc/common/programs/nvim/cmp/lsp.nix deleted file mode 100644 index 2b69d40..0000000 --- a/home/pc/common/programs/nvim/cmp/lsp.nix +++ /dev/null @@ -1,125 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins = { - lsp = { - enable = true; - inlayHints = true; - servers = { - asm_lsp.enable = true; - clangd = { - enable = true; - cmd = [ - "clangd" - ]; - }; - cssls.enable = true; - eslint.enable = true; - lua_ls = { - enable = true; - settings.telemetry.enable = false; - }; - hls = { - enable = true; - installGhc = true; - settings.haskell = { - formattingProvider = "fourmolu"; - }; - }; - html.enable = true; - jsonls.enable = true; - mlir_lsp_server.enable = true; - nil_ls.enable = true; - nixd.enable = true; - nushell.enable = true; - ocamllsp.enable = true; - pyright.enable = true; - ts_ls.enable = true; - zls.enable = true; - }; - }; - cmp-emoji = { - enable = true; - }; - cmp = { - enable = true; - settings = { - autoEnableSources = true; - experimental = { - ghost_text = true; - }; - performance = { - debounce = 60; - fetchingTimeout = 200; - }; - snippet = { - expand = "luasnip"; - }; - formatting = { - fields = [ - "kind" - "abbr" - "menu" - ]; - }; - sources = [ - { name = "nvim_lsp"; } - { name = "emoji"; } - - { - name = "buffer"; # text within current buffer - option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; - keywordLength = 3; - } - - { - name = "path"; # file system paths - keywordLength = 3; - } - - { - name = "luasnip"; # snippets - keywordLength = 3; - } - ]; - - window = { - completion.__raw = "cmp.config.window.bordered()"; - documentation.__raw = "cmp.config.window.bordered()"; - }; - - mapping = { - "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; - "" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; - "" = "cmp.mapping.abort()"; - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.scroll_docs(4)"; - "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.confirm({ select = true })"; - "" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })"; - }; - }; - }; - cmp-nvim-lsp = { - enable = true; - }; # lsp - cmp-buffer = { - enable = true; - }; - cmp-path = { - enable = true; - }; # file system paths - cmp_luasnip = { - enable = true; - }; # snippets - cmp-cmdline = { - enable = false; - }; # autocomplete for cmdline - luasnip = { - enable = true; - settings = { - enable_autosnippets = true; - store_selection_keys = ""; - }; - }; - }; -} diff --git a/home/pc/common/programs/nvim/cmp/none-ls.nix b/home/pc/common/programs/nvim/cmp/none-ls.nix deleted file mode 100644 index 486cb49..0000000 --- a/home/pc/common/programs/nvim/cmp/none-ls.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins = { - lsp-format.enable = true; - none-ls = { - enable = true; - enableLspFormat = true; - }; - }; -} diff --git a/home/pc/common/programs/nvim/config.lua b/home/pc/common/programs/nvim/config.lua new file mode 100644 index 0000000..4ca58b5 --- /dev/null +++ b/home/pc/common/programs/nvim/config.lua @@ -0,0 +1,433 @@ +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.cursorline = true +vim.opt.mouse = "" +vim.opt.breakindent = true +vim.opt.expandtab = true +vim.opt.smartcase = true +vim.opt.showtabline = 4 +vim.opt.shiftwidth = 4 +vim.opt.softtabstop = 4 +vim.opt.wildmenu = true +vim.opt.undofile = true +vim.opt.termguicolors = true +vim.opt.shell = "fish" + +vim.g.mapleader = " " +vim.keymap.set("n", "n", "Explore .", {}) + +-- Per nixvim generated configuration +vim.diagnostic.config({ + float = { border = "rounded", source = "always" }, + virtual_lines = { current_line = true }, + virtual_text = false, +}) + +vim.pack.add({ + "https://github.com/nvim-treesitter/nvim-treesitter", + "https://github.com/hrsh7th/nvim-cmp", + "https://github.com/hrsh7th/cmp-nvim-lsp", + "https://github.com/L3MON4D3/LuaSnip", + "https://github.com/hrsh7th/cmp-emoji", + "https://github.com/windwp/nvim-autopairs", + "https://github.com/lukas-reineke/lsp-format.nvim", + "https://github.com/nvimtools/none-ls.nvim", + "https://github.com/nvim-lua/plenary.nvim" +}) + +require("nvim-autopairs").setup({}) +require("null-ls").setup({ on_attach = require("lsp-format").on_attach }) +require("lsp-format").setup({}) + +local luasnip = require("luasnip") + +local cmp = require("cmp") +cmp.setup({ + autoEnableSources = true, + experimental = { ghost_text = true }, + formatting = { fields = { "kind", "abbr", "menu" } }, + mapping = { + [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }), + [""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }), + }, + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end + }, + sources = { + { name = "nvim_lsp" }, + { name = "emoji" }, + { keywordLength = 3, name = "buffer", option = { get_bufnrs = vim.api.nvim_list_bufs } }, + { keywordLength = 3, name = "path" }, + { keywordLength = 3, name = "luasnip" }, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, +}) + +vim.lsp.inlay_hint.enable(true) +local __lspCapabilities = function() + local capabilities = vim.lsp.protocol.make_client_capabilities() + + capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) + + return capabilities +end + + +local __setup = { capabilities = __lspCapabilities() } + +local __wrapConfig = function(cfg) + if cfg == nil then + cfg = __setup + else + cfg = vim.tbl_extend("keep", cfg, __setup) + end + return cfg +end + +vim.lsp.config("clangd", {cmd = {"clangd"}, filetypes = {"c", "cpp"}}) +vim.lsp.enable("clangd") +vim.lsp.config("hls", { cmd = {"hls"}, filetypes = {"hs"}}) +vim.lsp.enable("hls") +vim.lsp.config("lua_ls", { cmd = {"lua-language-server"}, filetypes = {"lua"}}) +vim.lsp.enable("lua_ls") +vim.lsp.config("nil_ls", { cmd = {"nil"}, filetypes = {"nix"}}) +vim.lsp.enable("nil_ls") +vim.lsp.config("nixd", { cmd = {"nixd"}, filetypes = {"nix"}}) +vim.lsp.enable("nixd") +vim.lsp.config("pyright", {cmd = {"pyright"}, filetypes = {"py"}}) +vim.lsp.enable("pyright") +vim.lsp.config("zls", {cmd = {"zls"}, filetypes = {"zig"}}) +vim.lsp.enable("zls") + +-- https://github.com/catppuccin/nvim/blob/main/lua/catppuccin/palettes/mocha.lua +-- https://github.com/Ronxvier/ymir.nvim/blob/main/lua/ymir/palette.lua +local colors = { + red = "#f38ba8", + orange = "#fab387", + green = "#a6e3a1", + yellow = "#f9e2af", + blue = "#f5c2e7", + magenta = "#cba6f7", + cyan = "#94e2d5", + + bg = "#11111b", + fg = "#cdd6f4", + cursorline = "#181825", + selection = "#313244", + linenr = "#45475a", + comment = "#585b70", + + -- Syntax + keyword = "#cba6f7", + Function = "#cba6f7", + string = "#f9e2af", + constant = "#cba6f7", + type = "#94e2d5", + number = "#fab387", + boolean = "#fab387", + operator = "#cdd6f4", + variable = "#cdd6f4", + + -- TODO + -- UI + cursor = "#f5a97f", + visual = "#2e3c55", + search = "#f5c2e7", + statusline = "#1e293b", + menu_bg = "#1a2535", + menu_sel = "#3b4252", + fold = "#3e4a5a", + split = "#334155", + + -- TODO + -- Diagnostics + diag_error = "#f38ba8", + diag_warn = "#fab387", + diag_info = "#89dceb", + diag_hint = "#b4befe", +} + +-- https://github.com/Ronxvier/ymir.nvim/blob/main/lua/ymir/groups.lua +local groups = { + Normal = { fg = colors.fg, bg = colors.bg }, + NormalFloat = { fg = colors.fg, bg = colors.bg }, + Comment = { fg = colors.comment, italic = true }, + Constant = { fg = colors.constant }, + String = { fg = colors.string }, + Character = { fg = colors.string }, + Number = { fg = colors.number }, + Boolean = { fg = colors.boolean }, + Float = { fg = colors.number }, + FloatBorder = { fg = colors.number }, + Operator = { fg = colors.operator }, + Keyword = { fg = colors.keyword }, + Keywords = { fg = colors.keyword }, + Identifier = { fg = colors.variable }, + Function = { fg = colors.Function }, + Statement = { fg = colors.keyword }, + Conditional = { fg = colors.keyword }, + Repeat = { fg = colors.keyword }, + Label = { fg = colors.keyword }, + Exception = { fg = colors.keyword }, + PreProc = { fg = colors.keyword }, + Include = { fg = colors.keyword }, + Define = { fg = colors.keyword }, + Title = { fg = colors.magenta }, + Macro = { fg = colors.keyword }, + PreCondit = { fg = colors.yellow }, + Type = { fg = colors.type, italic = true }, + StorageClass = { fg = colors.type, italic = true }, + Structure = { fg = colors.type, italic = true }, + TypeDef = { fg = colors.type, italic = true }, + Special = { fg = colors.keyword, italic = true }, + SpecialComment = { fg = colors.comment, italic = true }, + Error = { fg = colors.red }, + Todo = { fg = colors.yellow, bold = true, italic = true }, + Underlined = { fg = colors.cyan, underline = true }, + + Cursor = { fg = colors.cursor }, + CursorLineNr = { fg = colors.fg, bold = true }, + + SignColumn = { bg = colors.bg }, + + Conceal = { fg = colors.comment }, + -- CursorColumn = { bg = colors.selection}, + CursorLine = { bg = colors.selection }, + ColorColumn = { bg = colors.selection }, + + StatusLine = { fg = colors.statusline, bg = colors.black }, + StatusLineNC = { fg = colors.comment }, + StatusLineTerm = { fg = colors.fg, bg = colors.black }, + StatusLineTermNC = { fg = colors.comment }, + + Directory = { fg = colors.cyan }, + DiffAdd = { fg = colors.bg, bg = colors.green }, + DiffChange = { fg = colors.orange }, + DiffDelete = { fg = colors.red }, + DiffText = { fg = colors.comment }, + + ErrorMsg = { fg = colors.red }, + VertSplit = { fg = colors.fg }, + WinSeparator = { fg = colors.fg }, + Folded = { fg = colors.comment }, + FoldColumn = {}, + Search = { fg = colors.fg, bg = colors.selection }, + IncSearch = { fg = colors.fg, bg = colors.selection }, + LineNr = { fg = colors.comment }, + MatchParen = { fg = colors.cyan, underline = true }, + NonText = { fg = colors.comment }, + Pmenu = { fg = colors.fg, bg = colors.bg }, + PmenuSel = { fg = colors.bg, bg = colors.fg }, + PmenuSbar = { bg = colors.bg }, + PmenuThumb = { bg = colors.bg }, + + Question = { fg = colors.magenta }, + QuickFixLine = { fg = colors.bg, bg = colors.yellow }, + SpecialKey = { fg = colors.comment }, + + SpellBad = { fg = colors.red, underline = true }, + SpellCap = { fg = colors.yellow }, + SpellLocal = { fg = colors.yellow }, + SpellRare = { fg = colors.yellow }, + + TabLine = { fg = colors.comment }, + TabLineSel = { fg = colors.fg }, + TabLineFill = { bg = colors.bg }, + Terminal = { fg = colors.fg, bg = colors.black }, + Visual = { bg = colors.visual }, + VisualNOS = { fg = colors.visual }, + WarningMsg = { fg = colors.yellow }, + WildMenu = { fg = colors.black, bg = colors.white }, + + -- TreeSitter + ["@error"] = { fg = colors.red }, + ["@punctuation.delimiter"] = { fg = colors.fg }, + ["@punctuation.bracket"] = { fg = colors.fg }, + ["@punctuation.special"] = { fg = colors.cyan }, + + ["@constant"] = { fg = colors.constant }, + ["@constant.builtin"] = { fg = colors.constant }, + ["@symbol"] = { fg = colors.operator }, + + ["@constant.macro"] = { fg = colors.keyword }, + ["@string.regex"] = { fg = colors.string }, + ["@string"] = { fg = colors.string }, + ["@string.escape"] = { fg = colors.green }, + ["@character"] = { fg = colors.string }, + ["@number"] = { fg = colors.number }, + ["@boolean"] = { fg = colors.boolean }, + ["@float"] = { fg = colors.number }, + ["@annotation"] = { fg = colors.yellow }, + ["@attribute"] = { fg = colors.cyan }, + ["@namespace"] = { fg = colors.cyan }, + + ["@function.builtin"] = { fg = colors.Function }, + ["@function"] = { fg = colors.Function }, + ["@function.macro"] = { fg = colors.Function }, + ["@parameter"] = { fg = colors.number }, + ["@parameter.reference"] = { fg = colors.number }, + ["@method"] = { fg = colors.number }, + ["@field"] = { fg = colors.number }, + ["@property"] = { fg = colors.type }, + ["@constructor"] = { fg = colors.cyan }, + + ["@conditional"] = { fg = colors.blue }, + ["@repeat"] = { fg = colors.blue }, + ["@label"] = { fg = colors.cyan }, + + ["@keyword"] = { fg = colors.keyword }, + ["@keyword.function"] = { fg = colors.Function }, + ["@keyword.function.ruby"] = { fg = colors.Function }, + --["@keyword.operator"] = { fg = colors.blue }, + --["@operator"] = { fg = colors.blue }, + ["@exception"] = { fg = colors.magenta }, + ["@type"] = { fg = colors.bright_cyan }, + ["@type.builtin"] = { fg = colors.cyan, italic = true }, + ["@type.qualifier"] = { fg = colors.blue }, + ["@structure"] = { fg = colors.magenta }, + ["@include"] = { fg = colors.blue }, + + ["@variable"] = { fg = colors.variable }, + ["@variable.builtin"] = { fg = colors.variable }, + + ["@text"] = { fg = colors.number }, + ["@text.strong"] = { fg = colors.number, bold = true }, -- bold + ["@text.emphasis"] = { fg = colors.yellow, italic = true }, -- italic + ["@text.underline"] = { fg = colors.number }, + ["@text.title"] = { fg = colors.blue, bold = true }, -- title + ["@text.literal"] = { fg = colors.number }, -- inline code + ["@text.uri"] = { fg = colors.yellow, italic = true, underline = true }, -- urls + ["@text.reference"] = { fg = colors.number, bold = true }, + + ["@tag"] = { fg = colors.cyan }, + ["@tag.attribute"] = { fg = colors.number }, + ["@tag.delimiter"] = { fg = colors.blue }, + + -- Semantic + ["@class"] = { fg = colors.cyan }, + ["@struct"] = { fg = colors.cyan }, + ["@enum"] = { fg = colors.cyan }, + ["@enumMember"] = { fg = colors.magenta }, + ["@event"] = { fg = colors.cyan }, + ["@interface"] = { fg = colors.cyan }, + ["@modifier"] = { fg = colors.cyan }, + ["@regexp"] = { fg = colors.yellow }, + ["@typeParameter"] = { fg = colors.cyan }, + ["@decorator"] = { fg = colors.cyan }, + + -- LSP Semantic (0.9+) + ["@lsp.type.class"] = { fg = colors.type }, + ["@lsp.type.enum"] = { fg = colors.type }, + ["@lsp.type.decorator"] = { fg = colors.number }, + ["@lsp.type.enumMember"] = { fg = colors.type }, + ["@lsp.type.function"] = { fg = colors.Function }, + ["@lsp.type.interface"] = { fg = colors.keyword }, + ["@lsp.type.macro"] = { fg = colors.keyword }, + ["@lsp.type.method"] = { fg = colors.keyword }, + ["@lsp.type.namespace"] = { fg = colors.keyword }, + ["@lsp.type.parameter"] = { fg = colors.keyword }, + ["@lsp.type.property"] = { fg = colors.keyword }, + ["@lsp.type.struct"] = { fg = colors.type }, + ["@lsp.type.type"] = { fg = colors.type }, + ["@lsp.type.variable"] = { fg = colors.variable }, + + -- HTML + htmlArg = { fg = colors.orange }, + htmlBold = { fg = colors.yellow, bold = true }, + htmlEndTag = { fg = colors.cyan }, + htmlH1 = { fg = colors.blue }, + htmlH2 = { fg = colors.blue }, + htmlH3 = { fg = colors.blue }, + htmlH4 = { fg = colors.blue }, + htmlH5 = { fg = colors.blue }, + htmlH6 = { fg = colors.blue }, + htmlItalic = { fg = colors.magenta, italic = true }, + htmlLink = { fg = colors.magenta, underline = true }, + htmlSpecialChar = { fg = colors.yellow }, + htmlSpecialTagName = { fg = colors.cyan }, + htmlTag = { fg = colors.cyan }, + htmlTagN = { fg = colors.cyan }, + htmlTagName = { fg = colors.cyan }, + htmlTitle = { fg = colors.white }, +} + +for group, setting in pairs(groups) do + vim.api.nvim_set_hl(0, group, setting) +end + +-- nixvim stuff +do + local __nixvim_autogroups = { nixvim_binds_LspAttach = { clear = true }, nixvim_lsp_on_attach = { clear = false } } + + for group_name, options in pairs(__nixvim_autogroups) do + vim.api.nvim_create_augroup(group_name, options) + end +end +do + local __nixvim_autocommands = { + { + callback = function(event) + do + -- client and bufnr are supplied to the builtin `on_attach` callback, + -- so make them available in scope for our global `onAttach` impl + local client = vim.lsp.get_client_by_id(event.data.client_id) + local bufnr = event.buf + require("lsp-format").on_attach(client, bufnr) + end + end, + desc = "Run LSP onAttach", + event = "LspAttach", + group = "nixvim_lsp_on_attach", + }, + { + callback = function(args) + do + local __nixvim_binds = {} + + for i, map in ipairs(__nixvim_binds) do + local options = vim.tbl_extend("keep", map.options or {}, { buffer = args.buf }) + vim.keymap.set(map.mode, map.key, map.action, options) + end + end + end, + desc = "Load keymaps for LspAttach", + event = "LspAttach", + group = "nixvim_binds_LspAttach", + }, + { command = ":set guicursor=a:ver90-blinkon0", event = { "VimLeave" } }, + } + + for _, autocmd in ipairs(__nixvim_autocommands) do + vim.api.nvim_create_autocmd(autocmd.event, { + group = autocmd.group, + pattern = autocmd.pattern, + buffer = autocmd.buffer, + desc = autocmd.desc, + callback = autocmd.callback, + command = autocmd.command, + once = autocmd.once, + nested = autocmd.nested, + }) + end +end +-- }} + +-- user-associated plugin config {{{ +require('mini.base16').setup({ + palette = { + base00 = '#11111b', base01 = '#181825', base02 = '#313244', base03 = '#45475a', + base04 = '#585b70', base05 = '#cdd6f4', base06 = '#f5e0dc', base07 = '#b4befe', + base08 = '#f38ba8', base09 = '#fab387', base0A = '#f9e2af', base0B = '#a6e3a1', + base0C = '#94e2d5', base0D = '#f5c2e7', base0E = '#cba6f7', base0F = '#f2cdcd' + } +}) + + + +-- }}} diff --git a/home/pc/common/programs/nvim/default.nix b/home/pc/common/programs/nvim/default.nix index aabce7a..bb94543 100644 --- a/home/pc/common/programs/nvim/default.nix +++ b/home/pc/common/programs/nvim/default.nix @@ -1,18 +1,9 @@ -{ ... }: +{ pkgs, inputs, ... }: { - imports = [ - ./cmp - ./plugins - - ./keymaps.nix - ./options.nix - ]; - - programs.nixvim = { + programs.neovim = { enable = true; + package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default; + extraLuaConfig = builtins.readFile ./config.lua; defaultEditor = true; - viAlias = true; - vimAlias = true; - colorschemes.catppuccin.enable = true; }; } diff --git a/home/pc/common/programs/nvim/keymaps.nix b/home/pc/common/programs/nvim/keymaps.nix deleted file mode 100644 index b2a1599..0000000 --- a/home/pc/common/programs/nvim/keymaps.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ ... }: -{ - programs.nixvim = { - globals.mapleader = " "; - keymaps = [ - { - mode = "n"; - key = "n"; - action = "NvimTreeFindFileToggle"; - } - - { - mode = [ - "n" - "i" - "v" - "t" - ]; - key = ""; - action = "ToggleTerm"; - } - - { - mode = [ - "n" - "i" - "v" - ]; - key = ""; - action = "BufferLineCycleNext"; - } - - { - mode = [ - "n" - "i" - "v" - ]; - key = ""; - action = "BufferLineCyclePrev"; - } - - { - mode = [ - "n" - "i" - "v" - ]; - key = ""; - action = "BufferLineGoToBuffer 1"; - } - - { - mode = [ - "n" - "i" - "v" - ]; - key = ""; - action = "BufferLineGoToBuffer -1"; - } - - { - mode = "n"; - key = ""; - action = "Yazi"; - } - - { - mode = "n"; - key = "a"; - action = "AerialToggle"; - } - - { - mode = "n"; - key = "{"; - action = "AerialPrev"; - } - - { - mode = "n"; - key = "}"; - action = "AerialNext"; - } - - { - mode = "n"; - key = "c"; - action = ":hori term "; - } - ]; - }; -} diff --git a/home/pc/common/programs/nvim/options.nix b/home/pc/common/programs/nvim/options.nix deleted file mode 100644 index c712b7b..0000000 --- a/home/pc/common/programs/nvim/options.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ ... }: -{ - programs.nixvim = { - autoCmd = [ - { - event = [ "VimLeave" ]; - command = ":set guicursor=a:ver90-blinkon0"; - } - ]; - diagnostic.settings = { - virtual_lines = { - current_line = true; - }; - float = { - border = "rounded"; - source = "always"; - }; - }; - opts = { - shell = "nu"; - - fillchars = "eob: "; - - number = true; - relativenumber = true; - - tabstop = 4; - softtabstop = 4; - showtabline = 4; - shiftwidth = 4; - expandtab = true; - smartindent = true; - breakindent = true; - - hlsearch = true; - incsearch = true; - ignorecase = true; - smartcase = true; - - splitbelow = true; - splitright = true; - - mouse = "a"; - - updatetime = 50; - - swapfile = false; - backup = false; - undofile = true; - - scrolloff = 10; - - cursorline = true; - - wildmenu = true; - }; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/codesnap.nix b/home/pc/common/programs/nvim/plugins/codesnap.nix deleted file mode 100644 index 60444ce..0000000 --- a/home/pc/common/programs/nvim/plugins/codesnap.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins.codesnap = { - enable = true; - settings = { - has_line_number = true; - bg_theme = "grape"; - watermark = ""; - }; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/default.nix b/home/pc/common/programs/nvim/plugins/default.nix deleted file mode 100644 index 79c2f0f..0000000 --- a/home/pc/common/programs/nvim/plugins/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ ... }: -{ - imports = [ - ./codesnap.nix - ./emmet.nix - ./rustaceanvim.nix - ./telescope.nix - ./toggleterm.nix - ./treesitter.nix - ]; - - programs.nixvim.plugins = { - aerial.enable = true; - bufferline.enable = true; - colorizer.enable = true; - comment.enable = true; - crates.enable = true; - fidget.enable = true; - lazygit.enable = true; - lsp-lines.enable = true; - lualine.enable = true; - nvim-tree.enable = true; - nvim-autopairs.enable = true; - quickmath.enable = true; - rainbow.enable = true; - render-markdown.enable = true; - treesj.enable = true; - ts-autotag.enable = true; - visual-multi.enable = true; - web-devicons.enable = true; - yazi.enable = true; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/emmet.nix b/home/pc/common/programs/nvim/plugins/emmet.nix deleted file mode 100644 index 020304f..0000000 --- a/home/pc/common/programs/nvim/plugins/emmet.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins.emmet = { - enable = true; - settings.leader = ""; - settings.mode = "a"; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/rustaceanvim.nix b/home/pc/common/programs/nvim/plugins/rustaceanvim.nix deleted file mode 100644 index 3fda538..0000000 --- a/home/pc/common/programs/nvim/plugins/rustaceanvim.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins.rustaceanvim = { - enable = true; - settings = { - tools.enable_clippy = true; - server = { - default_settings = { - inlayHints = { - lifetimeElisionHints = { - enable = "always"; - }; - }; - rust-analyzer = { - cargo = { - allFeatures = true; - }; - check = { - command = "clippy"; - }; - }; - }; - }; - }; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/telescope.nix b/home/pc/common/programs/nvim/plugins/telescope.nix deleted file mode 100644 index 5853f46..0000000 --- a/home/pc/common/programs/nvim/plugins/telescope.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins.telescope = { - enable = true; - extensions = { - # file-browser.enable = true; - fzf-native.enable = true; - # media-files.enable = true; - }; - settings = { - pickers.colorscheme.enable_preview = true; - - defaults = { - layout_config = { - horizontal = { - prompt_position = "bottom"; - }; - }; - sorting_strategy = "descending"; - }; - }; - keymaps = { - # "" = { - # action = "find_files"; - # options.desc = "Find Project Files"; - # }; - "f" = { - action = "live_grep"; - options.desc = "Find Text"; - }; - }; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/toggleterm.nix b/home/pc/common/programs/nvim/plugins/toggleterm.nix deleted file mode 100644 index 2b3ab3d..0000000 --- a/home/pc/common/programs/nvim/plugins/toggleterm.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins.toggleterm = { - enable = true; - settings = { - direction = "horizontal"; - float_opts = { - border = "curved"; - }; - shell = "nu"; - }; - }; -} diff --git a/home/pc/common/programs/nvim/plugins/treesitter.nix b/home/pc/common/programs/nvim/plugins/treesitter.nix deleted file mode 100644 index f685ceb..0000000 --- a/home/pc/common/programs/nvim/plugins/treesitter.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins.treesitter = { - enable = true; - settings = { - auto_install = true; - highlight.enable = true; - }; - }; -} diff --git a/home/pc/common/programs/rofi/default.nix b/home/pc/common/programs/rofi/default.nix index 9531e34..50267bb 100644 --- a/home/pc/common/programs/rofi/default.nix +++ b/home/pc/common/programs/rofi/default.nix @@ -8,5 +8,6 @@ home.packages = [ pkgs.rofi-power-menu pkgs.rofi + pkgs.rofimoji ]; } diff --git a/home/pc/common/programs/starship.nix b/home/pc/common/programs/starship.nix deleted file mode 100644 index f134014..0000000 --- a/home/pc/common/programs/starship.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: -{ - programs.starship = { - #enable = true; - }; -} diff --git a/home/pc/common/programs/zen.nix b/home/pc/common/programs/zen.nix index 06c4b65..85ea38b 100644 --- a/home/pc/common/programs/zen.nix +++ b/home/pc/common/programs/zen.nix @@ -112,6 +112,12 @@ in # uBlock Origin: "uBlock0@raymondhill.net" + + # Shinigami Eyes + "shinigamieyes@shinigamieyes" + + # Hide shorts for Youtube + "{88ebde3a-4581-4c6b-8019-2a05a9e3e938}" ] ); }; diff --git a/host/pc/common/configuration.nix b/host/pc/common/configuration.nix index 3d4edac..7b377f6 100644 --- a/host/pc/common/configuration.nix +++ b/host/pc/common/configuration.nix @@ -10,6 +10,7 @@ imports = [ inputs.home-manager.nixosModules.home-manager inputs.stylix.nixosModules.stylix + inputs.base16.nixosModule ./stylix.nix ./dwl/dwl.nix @@ -46,17 +47,6 @@ services.gnome.glib-networking.enable = true; - programs.hyprland = { - enable = true; - }; - - # services.displayManager.sddm = { - # enable = true; - # theme = "catppuccin-mocha-mauve"; - # wayland.enable = true; - # package = pkgs.kdePackages.sddm; - # }; - services.displayManager.ly = { enable = true; }; @@ -65,16 +55,28 @@ enable = true; }; + xdg.portal = { + enable = true; + config.sway = { + default = [ "gtk" ]; + "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; + "org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ]; + "org.freedesktop.impl.portal.ScreenShot" = [ "wlr" ]; + "org.freedesktop.impl.portal.Inhibit" = [ ]; + }; + extraPortals = [ + pkgs.xdg-desktop-portal-wlr + pkgs.xdg-desktop-portal-gtk + ]; + wlr.enable = true; + }; + services.blueman.enable = true; services.printing.enable = true; services.openssh = { enable = true; - settings = { - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; }; services.pulseaudio.enable = false; @@ -120,6 +122,7 @@ fontSize = "12"; }) wget + ntfs3g ]; fonts = { @@ -142,9 +145,9 @@ environment.sessionVariables = { EDITOR = "nvim"; - BROWSER = "zen"; SUDO_EDITOR = "nvim"; - SHELL = "nu"; + BROWSER = "zen"; + SHELL = "fish"; }; system.stateVersion = "24.05"; diff --git a/host/pc/common/dwl/config.h b/host/pc/common/dwl/config.h index 634135a..d7300d6 100644 --- a/host/pc/common/dwl/config.h +++ b/host/pc/common/dwl/config.h @@ -75,10 +75,13 @@ static const Rule rules[] = { static const Layout layouts[] = { /* symbol arrange function */ { "[]=", tile }, + { "|w|", btrtile }, { "><>", NULL }, /* no layout function means floating behavior */ { "[M]", monocle }, }; +#define CONFIG_BTRTILE_LAYOUT &layouts[1] + /* monitors */ /* (x=-1, y=-1) is reserved as an "autoconfigure" monitor position indicator * WARNING: negative values other than (-1, -1) cause problems with Xwayland clients @@ -93,16 +96,22 @@ static const MonitorRule monrules[] = { /* defaults */ // https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/monitorconfig/monitorconfig.patch - { "DP-2", 0.55f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, -1, -1, 2560, 1440, 180.0f, 0, 1}, - { "HDMI-A-2", 0.55f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, -1, -1, 1920, 1080, 60.0f, 0, 1}, + { "DP-2", 0.55f, 1, 1, CONFIG_BTRTILE_LAYOUT, WL_OUTPUT_TRANSFORM_NORMAL, -1, -1, 2560, 1440, 180.0f, 0, 1}, + { "HDMI-A-2", 0.55f, 1, 1, CONFIG_BTRTILE_LAYOUT, WL_OUTPUT_TRANSFORM_NORMAL, -1, -1, 1920, 1080, 60.0f, 0, 1}, }; // https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/autostart/autostart.patch static const char *const autostart[] = { + // Set the resolution "wlr-randr", "--output", "DP-2", "--mode", "2560x1440@180Hz", NULL, + // Start the wallpaper daemon "swww-daemon", NULL, + // Include the wallpaper "swww", "img", WALLPAPER, "-t", "none", NULL, + // Start waybar "waybar", NULL, + // Needed for screencasting + "dbus-update-activation-environment", "--systemd", "WAYLAND_DISPLAY", "XDG_CURRENT_DESKTOP=sway", NULL, NULL, }; @@ -177,6 +186,7 @@ static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TA static const char *termcmd[] = { "ghostty", NULL }; static const char *menucmd[] = { "rofi", "-show", "drun", NULL }; static const char *powrcmd[] = { "rofi", "-show", "pm", "-modi", "pm:rofi-power-menu", "--choices", "suspend/reboot/shutdown", NULL }; +static const char *emjicmd[] = { "rofimoji", "--action", "copy", NULL }; static const char *scshcmd[] = { "gscreenshot", "-c", "-s", NULL }; static const char *brsrcmd[] = { "zen-beta", NULL }; @@ -186,6 +196,7 @@ static const Key keys[] = { { MODKEY, XKB_KEY_d, spawn, {.v = menucmd} }, { MODKEY, XKB_KEY_q, spawn, {.v = termcmd} }, { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_P, spawn, {.v = powrcmd} }, + { MODKEY, XKB_KEY_e, spawn, {.v = emjicmd} }, { MODKEY, XKB_KEY_s, spawn, {.v = scshcmd} }, { MODKEY, XKB_KEY_w, spawn, {.v = brsrcmd} }, @@ -214,7 +225,7 @@ static const Key keys[] = { { MODKEY, XKB_KEY_Return, zoom, {0} }, { MODKEY, XKB_KEY_c, killclient, {0} }, - { MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} }, + // { MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} }, { MODKEY, XKB_KEY_v, togglefloating, {0} }, { MODKEY, XKB_KEY_f, togglefullscreen, {0} }, TAGKEYS( XKB_KEY_1, XKB_KEY_exclam, 0), diff --git a/host/pc/common/dwl/dwl.nix b/host/pc/common/dwl/dwl.nix index 41cf55e..f7d2198 100644 --- a/host/pc/common/dwl/dwl.nix +++ b/host/pc/common/dwl/dwl.nix @@ -3,6 +3,7 @@ environment.systemPackages = [ pkgs.gscreenshot pkgs.wlr-randr + pkgs.swww ]; programs.dwl = { enable = true; diff --git a/host/pc/february/configuration.nix b/host/pc/february/configuration.nix index d2aac70..463206b 100644 --- a/host/pc/february/configuration.nix +++ b/host/pc/february/configuration.nix @@ -4,11 +4,4 @@ ./hardware-configuration.nix ../common/configuration.nix ]; - - boot.loader.grub = { - enable = true; - efiSupport = true; - device = "nodev"; - useOSProber = true; - }; }