diff --git a/flake.nix b/flake.nix index f04c22a..084f81b 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ url = "github:Kirottu/anyrun"; inputs.nixpkgs.follows = "nixpkgs"; }; + # kakoune.url = "github:mawww/kakoune"; stylix.url = "github:danth/stylix"; home-manager = { url = "github:nix-community/home-manager"; diff --git a/hosts/vali/mars/configuration.nix b/hosts/vali/mars/configuration.nix index 056a363..311640d 100644 --- a/hosts/vali/mars/configuration.nix +++ b/hosts/vali/mars/configuration.nix @@ -42,16 +42,20 @@ kitty.enable = true; hyprland.enable = true; newsboat.enable = true; - # foot.enable = true; + foot.enable = true; fish.enable = true; stylix.enable = true; helix.enable = true; nh.enable = true; spicetify.enable = true; + kakoune.enable = true; schizofox.enable = true; anyrun.enable = true; }; - services = { pipewire.enable = true; }; + services = { + pipewire.enable = true; + dunst.enable = true; + }; themes = { gtk = { enable = true; }; qt = { diff --git a/hosts/vali/mars/hyprland/hyprland.nix b/hosts/vali/mars/hyprland/hyprland.nix index a97ebd4..ffbb974 100644 --- a/hosts/vali/mars/hyprland/hyprland.nix +++ b/hosts/vali/mars/hyprland/hyprland.nix @@ -274,6 +274,7 @@ in { "${pkgs.procps}/bin/pkill pavucontrol" # and run it all again "[workspace special:btop;silent;tile] ${pkgs.kitty}/bin/kitty -e ${pkgs.btop}/bin/btop" + # "[workspace special:pipewire silent;tile] ${pkgs.helvum}/bin/helvum" "[workspace special:pipewire;silent;tile] ${pkgs.pavucontrol}/bin/pavucontrol" # "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator" diff --git a/hosts/vali/mars/programs.nix b/hosts/vali/mars/programs.nix index 36547ff..9275b59 100644 --- a/hosts/vali/mars/programs.nix +++ b/hosts/vali/mars/programs.nix @@ -47,6 +47,7 @@ in { lazygit librewolf links2 + lutris mars-mips gnome.nautilus ncmpcpp @@ -102,6 +103,8 @@ in { vlc weechat wget + wine + winetricks wireguard-tools xournalpp yt-dlp diff --git a/modules/cli/fish.nix b/modules/cli/fish.nix index e42ac76..77fb501 100644 --- a/modules/cli/fish.nix +++ b/modules/cli/fish.nix @@ -68,6 +68,7 @@ in { cd = "z"; v = "nvim"; h = "hx"; + k = "kak"; e = "emacs"; update = ''nh os switch "${gitPath}"''; flake = "cd '${gitPath}'"; diff --git a/modules/gui/default.nix b/modules/gui/default.nix index 6c87762..bab24e3 100644 --- a/modules/gui/default.nix +++ b/modules/gui/default.nix @@ -4,6 +4,7 @@ _: { ./gtk.nix ./foot.nix ./mpv.nix + ./kakoune.nix ./qt.nix ./zathura.nix ./stylix.nix diff --git a/modules/gui/kakoune.nix b/modules/gui/kakoune.nix new file mode 100644 index 0000000..f5e4310 --- /dev/null +++ b/modules/gui/kakoune.nix @@ -0,0 +1,79 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.modules.programs.kakoune; + username = config.modules.other.system.username; + # inherit (inputs.kakoune.packages.${pkgs.system}) kakoun; +in { + options.modules.programs.kakoune.enable = mkEnableOption "kakoune"; + + config = mkIf cfg.enable { + home-manager.users.${username} = { + programs.kakoune = { + enable = true; + # extraConfig = builtins.readFile + # package = kakoun; + plugins = with pkgs.kakounePlugins; [ + auto-pairs-kak + fzf-kak + powerline-kak + byline-kak + kakoune-lsp + # luar-kak + ]; + config = { + ui = { + statusLine = "top"; + enableMouse = true; + assistant = "none"; + }; + numberLines.enable = true; + numberLines.relative = true; + numberLines.highlightCursor = true; + # numberLines.separator = " "; + showMatching = true; + indentWidth = 2; + tabStop = 2; + scrollOff.lines = 1; + scrollOff.columns = 3; + keyMappings = [ + { + mode = "normal"; + key = ""; + effect = ";,"; + docstring = + "Press escape to clear highlighted text and collapse cursors"; + } + { + mode = "normal"; + key = ""; + effect = ":comment-line"; + docstring = "Comment a line with !"; + } + { + mode = "normal"; + key = "b"; + effect = ":db"; + docstring = "close current buffer"; + } + + { + mode = "normal"; + key = "n"; + effect = ":bp"; + docstring = "go to next buffer"; + } + { + mode = "normal"; + key = "m"; + effect = ":bn"; + docstring = "go to next buffer"; + } + ]; + }; + + }; + }; + + }; +} diff --git a/modules/gui/stylix.nix b/modules/gui/stylix.nix index 9a55515..2422ce2 100644 --- a/modules/gui/stylix.nix +++ b/modules/gui/stylix.nix @@ -17,13 +17,13 @@ in { targets = { btop.enable = true; fish.enable = true; - dunst.enable = true; + dunst.enable = false; emacs.enable = true; firefox.enable = true; kitty.enable = true; lazygit.enable = true; rofi.enable = true; - foot.enable = true; + foot.enable = false; tmux.enable = true; waybar.enable = true; vim.enable = true; @@ -73,6 +73,7 @@ in { stylix = { image = ../../lib/wallpapers/FreeBSD.png; polarity = "dark"; + targets.plymouth.enable = false; }; }; } diff --git a/modules/services/default.nix b/modules/services/default.nix index 38d5a6a..bc5610f 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -1 +1 @@ -_: { imports = [ ./pipewire.nix ./ssh.nix ./greetd.nix ]; } +_: { imports = [ ./pipewire.nix ./ssh.nix ./greetd.nix ./dunst.nix ]; } diff --git a/modules/services/dunst.nix b/modules/services/dunst.nix new file mode 100644 index 0000000..b4502c3 --- /dev/null +++ b/modules/services/dunst.nix @@ -0,0 +1,93 @@ +{ config, inputs, lib, pkgs, ... }: +let + cfg = config.modules.services.dunst; + inherit (config.modules.other.system) username; + + inherit (lib) mkEnableOption mkIf; +in { + options.modules.services.dunst.enable = mkEnableOption "dunst"; + + config = mkIf cfg.enable { + home-manager.users.${username} = { + services.dunst = { + enable = true; + package = inputs.nixpkgs-wayland.packages.${pkgs.system}.dunst; + settings = { + global = { + monitor = 1; + follow = "none"; + width = 300; + height = 300; + origin = "top-center"; + offset = "0x15"; + scale = 0; + notification_limit = 3; + idle_threshold = 120; + progress_bar = true; + progress_bar_height = 10; + progress_bar_frame_width = 0; + progress_bar_min_width = 150; + progress_bar_max_width = 300; + indicate_hidden = "yes"; + transparency = 10; + separator_height = 2; + padding = 10; + frame_width = 3; + frame_color = "#89B4FA"; + separator_color = "frame"; + highlight = "#89DCEB"; + sort = "yes"; + font = "JetBrains Mono 12"; + line_height = 0; + markup = "full"; + format = '' + %s + %b''; + alignment = "right"; + vertical_alignment = "center"; + show_age_threshold = 60; + ellipsize = "middle"; + ignore_newline = "no"; + stack_duplicates = true; + hide_duplicate_count = false; + show_indicators = "yes"; + icon_position = "left"; + min_icon_size = 0; + max_icon_size = 32; + sticky_history = "yes"; + history_length = 20; + dmenu = "${pkgs.rofi-wayland}/bin/rofi"; + browser = "${pkgs.xdg-utils}/bin/xdg-open"; + always_run_script = true; + title = "Dunst"; + class = "dunst"; + corner_radius = 10; + ignore_dbusclose = false; + force_xwayland = false; + force_xinerama = false; + mouse_left_click = "do_action, close_current"; + mouse_middle_click = "context"; + mouse_right_click = "close_all"; + }; + experimental = { per_monitor_dpi = false; }; + urgency_low = { + background = "#1E1E2E"; + foreground = "#CDD6F4"; + timeout = 5; + }; + urgency_normal = { + background = "#1E1E2E"; + foreground = "#CDD6F4"; + timeout = 6; + }; + urgency_critical = { + background = "#1E1E2E"; + foreground = "#CDD6F4"; + frame_color = "#FAB387"; + timeout = 0; + }; + }; + }; + }; + }; +} diff --git a/options/boot/grub-boot.nix b/options/boot/grub-boot.nix index e6e4fc7..e81ae34 100644 --- a/options/boot/grub-boot.nix +++ b/options/boot/grub-boot.nix @@ -1,4 +1,4 @@ -_: { +{ pkgs, ... }: { boot.loader = { efi.canTouchEfiVariables = true; grub = { @@ -7,4 +7,11 @@ _: { device = "nodev"; }; }; + boot.plymouth = { + enable = true; + font = + "${pkgs.jetbrains-mono}/share/fonts/truetype/JetBrainsMono-Regular.ttf"; + themePackages = [ pkgs.catppuccin-plymouth ]; + theme = "catppuccin-macchiato"; + }; }