113 lines
4.3 KiB
Nix
113 lines
4.3 KiB
Nix
{ 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
|