{ config, pkgs, nirimon, aw-watcher-afk-input, dotfilesPath, ...}: { imports = [ ./nix/hm-sublime-text.nix ./nix/hm-firefox.nix ]; home.packages = with pkgs; [ activitywatch dos2unix ffmpeg nmap xclip nodejs_26 # Cannot use slim (need npm or sublime lsp-typescript complains) pnpm typescript typescript-language-server gucharmap # TODO: This needs other things to integrate with niri. The Pipewire source doesnt work out of the box # see https://niri-wm.github.io/niri/Screencasting.html obs-studio # Other dev tools git-filter-repo # Kmonad keybinds kmonad wtype # Desktop stuff # Desktop environment niri ycwd # For keybind to open new terminal in the same cwd as focused one # Statusbar waybar font-awesome # for waybar # Backdrop swaybg # Required for micro to copy to clipboard of desktop environment wl-clipboard # Display adjustment TUI # TODO: I dont quite like this one it has issues # * Negative numbers cause a niri msg issue # * Alignment snapping doesn't quite work, you have to use ^v<> keys to get it to snap which is hard to remember # * Sometimes it just completely outputs the wrong display positions and you have to revert # ... # I tried nwg-displays but it would not read back the niri config # I also kinda wish this output a .kdl file instead of using niri msg because it means you have to call it all the time # to set resolution... # Hmm... nirimon.packages.x86_64-linux.default # niri_window_buttons (pkgs.callPackage ./nix/niri-window-buttons.nix { }) # Screenshots (flameshot replacement) grim slurp satty # This pulls a binary, I'm pretty annoyed with this, but this is how I edit some of my notes obsidian #zettlr #dejavu_fonts ]; home.file.".config/waybar/config.jsonc".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/waybar/config.jsonc"; home.file.".config/waybar/style.css".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/waybar/style.css"; home.file.".config/waybar/power_menu.xml".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/waybar/power_menu.xml"; home.file.".config/flameshot/flameshot.ini".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/flameshot/flameshot.ini"; home.file.".config/niri/config.kdl".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/niri/config.kdl"; home.file.".config/nirimon/profiles".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/nirimon/profiles"; services.activitywatch = { enable = true; watchers = { #aw-watcher-afk = {}; #aw-watcher-window = {}; aw-watcher-window-wayland = { package = pkgs.aw-watcher-window-wayland; }; aw-watcher-afk-input = { package = aw-watcher-afk-input; }; }; }; } # TODO: # Krita, symlink the whole config folder # home.packages = with pkgs; [ krita ]; # home.file.".local/share/krita".source = config.lib.file.mkOutOfStoreSymlink "/dotfiles/krita"; # TODO: I need to audit these more in depth still, or possibly run these differently # like with a Dockerized desktop? # home.packages = with pkgs; [ dbeaver-bin ungoogled-chromium seafile-client signal-desktop sqlitebrowser vlc ]; #Desktop Files # TODO: I dont think I need this because I am no longer using an app image? # home.file.".local/share/applications/obsidian.desktop".source = config.lib.file.mkOutOfStoreSymlink "/dotfiles/desktop/obsidian.desktop"; # home.file.".local/share/applications/krita.desktop".source = config.lib.file.mkOutOfStoreSymlink "/dotfiles/desktop/krita.desktop"; # TODO: Not covered: Balena etcher, activitywatch, DiscordChatExporter, # TODO: Not researched: Blender # TODO: Come back to this if I really end up caring again... # Fonts # fontsPath = f"{userHome}/.local/share/fonts" # SymLinkOp(env(f"{os.path.realpath(scriptDir)}/fonts/Blobmoji.ttf"), f"{fontsPath}/Blobmoji.ttf")() # SymLinkOp(env(f"{os.path.realpath(scriptDir)}/fonts/TwitterColorEmoji-SVGinOT.ttf"), f"{fontsPath}/TwitterColorEmoji-SVGinOT.ttf")() # RemoveFileOp(f"/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf")() # Delete normal NotoColorEmoji font