From d96d437ed42ee448d51ee4730b98a61a929c8776 Mon Sep 17 00:00:00 2001 From: lulusillyyy Date: Sat, 18 Oct 2025 17:29:05 -0400 Subject: [PATCH] Got declarative homebrew working, working on yabai and shkd still --- dotfiles/ghostty/config | 7 ++++ dotfiles/skhd/skhdrc | 35 ++++++++++++++++++++ dotfiles/yabai/yabairc | 3 ++ flake.nix | 27 +++++++++++++-- home.nix | 73 +++++++++++++++++++++++++---------------- 5 files changed, 114 insertions(+), 31 deletions(-) diff --git a/dotfiles/ghostty/config b/dotfiles/ghostty/config index 49edbd0..39bc49b 100644 --- a/dotfiles/ghostty/config +++ b/dotfiles/ghostty/config @@ -1,5 +1,6 @@ font-family = Monocraft Nerd Font background-opacity = 0.8 +background-blur = 10 theme = IC Orange PPL mouse-hide-while-typing = true @@ -21,4 +22,10 @@ keybind = super+a>p=previous_tab keybind = super+r=reload_config +quick-terminal-position = center +quick-terminal-screen = main +quick-terminal-animation-duration = 0.2 +quick-terminal-autohide = true +keybind = super+shift+q=toggle_quick_terminal + window-save-state = always diff --git a/dotfiles/skhd/skhdrc b/dotfiles/skhd/skhdrc index fb68479..9eb99bc 100644 --- a/dotfiles/skhd/skhdrc +++ b/dotfiles/skhd/skhdrc @@ -3,6 +3,41 @@ alt - h : yabai -m window --focus west alt - j : yabai -m window --focus south alt - k : yabai -m window --focus north alt - l : yabai -m window --focus east +shift + alt - h : yabai -m window --swap west +shift + alt - j : yabai -m window --swap south +shift + alt - k : yabai -m window --swap north +shift + alt - l : yabai -m window --swap east + +# Workspace navigation +alt - q : yabai -m space --focus 1 +alt - w : yabai -m space --focus 2 +alt - e : yabai -m space --focus 3 +alt - r : yabai -m space --focus 4 +alt - t : yabai -m space --focus 5 +alt - y : yabai -m space --focus 6 +alt - u : yabai -m space --focus 7 +alt - i : yabai -m space --focus 8 +alt - o : yabai -m space --focus 9 +alt - p : yabai -m space --focus 10 + +shift + alt - 1 : yabai -m window --space 1 +shift + alt - 2 : yabai -m window --space 2 +shift + alt - 3 : yabai -m window --space 3 +shift + alt - 4 : yabai -m window --space 4 +shift + alt - 5 : yabai -m window --space 5 +shift + alt - 6 : yabai -m window --space 6 +shift + alt - 7 : yabai -m window --space 7 +shift + alt - 8 : yabai -m window --space 8 +shift + alt - 9 : yabai -m window --space 9 +shift + alt - 0 : yabai -m window --space 10 + +alt - m : yabai -m window --minimize + +alt - f : yabai -m window --toggle float;\ + yabai -m window --grid 4:4:1:1:2:2 + +shift + alt - f : yabai -m window --focus mouse && \ + yabai -m window --toggle zoom-fullscreen # Open apps alt - t : open -n -a "ghostty" diff --git a/dotfiles/yabai/yabairc b/dotfiles/yabai/yabairc index 7fab94d..793707a 100644 --- a/dotfiles/yabai/yabairc +++ b/dotfiles/yabai/yabairc @@ -9,3 +9,6 @@ yabai -m config window_gap 10 yabai -m config mouse_follows_focus on yabai -m config mouse_modifier alt + +yabai -m rule --add app="^System Preferences$" manage=off +yabai -m rule --add app="^KeePassXC$" manage=off diff --git a/flake.nix b/flake.nix index 70b468c..ab3b9a1 100644 --- a/flake.nix +++ b/flake.nix @@ -29,7 +29,7 @@ environment.systemPackages = with pkgs; [ neovim # Text editor of choice - btop # Resource manager + htop # Resource manager iina # Media player yabai # Tiling window manager skhd # Hotkey daemon @@ -37,6 +37,29 @@ # kanata # Keyboard remapping tool ]; + homebrew = { + enable = true; + taps = []; + brews = [ + "kanata" + "hugo" + "mpv" + "lua" + "luarocks" + "guile" + "scrcpy" + "ffmpeg" + ]; + casks = [ + "font-jetbrains-mono" + "font-monocraft-nerd-font" + "obsidian" + "raycast" + "android-platform-tools" + ]; + }; + + services.yabai = { enable = true; extraConfig = builtins.readFile ./dotfiles/yabai/yabairc; @@ -51,8 +74,6 @@ finder.AppleShowAllExtensions = true; }; - - nix.enable =false; # Necessary for using flakes on this system. nix.settings.experimental-features = "nix-command flakes"; diff --git a/home.nix b/home.nix index bf2e989..d40fcfb 100644 --- a/home.nix +++ b/home.nix @@ -1,40 +1,57 @@ { config, pkgs, ... }: { - home.stateVersion = "25.05"; # Please read the comment before changing. + home.stateVersion = "25.05"; - home.packages = with pkgs; [ - irssi - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; + services.mpd = { + enable = true; + musicDirectory = "/Users/erogers/Music"; + extraConfig = '' + audio_output { + type "osx" + name "Mac Output" + } + ''; + }; + + home.packages = with pkgs; [ + wget # Tool for retrieving files using HTTP/S and FTP + imagemagick # Image manipulation software suite + gauche # R7RS Scheme scripting engine + typst # Modern markup-based typesetting system + rsync # Incremental file transfer utility + tmux # Terminal multiplexer + btop # Resource monitor + irssi # Terminal based IRC client + rmpc # TUI music player + nicotine-plus # Graphical client for SoulSeek + ]; + + home.file = { + ".config/ghostty/config" .source = dotfiles/ghostty/config; + ".config/kanata/conf.kbd" .source = dotfiles/kanata/conf.kbd; + ".config/nvim/init.lua" .source = builtins.fetchurl { + url = "https://git.luluslly.xyz/lulusilly/dotfiles/raw/branch/master/.config/nvim/init.lua"; + sha256 = "fc7104ae4957a7ff92375557725daf9872f836645556f7940fdd6366b04386e0"; + }; }; - # You can also manage environment variables but you will have to manually - # source - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/davish/etc/profile.d/hm-session-vars.sh - # - # if you don't want to manage your shell through Home Manager. home.sessionVariables = { EDITOR = "nvim"; }; + programs.git = { + enable = true; + userName = "lulusilly"; + userEmail = "lunita@puppygirl.onl"; + aliases = { + ci = "commit -m"; + pu = "push origin main"; + pm = "push origin master"; + s = "status"; + co = "checkout"; + }; + }; + programs.home-manager.enable = true; }