diff --git a/.config/niri/config.kdl b/.config/niri/config.kdl index f7cce16..a8b6db2 100644 --- a/.config/niri/config.kdl +++ b/.config/niri/config.kdl @@ -1,9 +1,7 @@ // Check the wiki for a full description of the configuration: // https://niri-wm.github.io/niri/Configuration:-Introduction -// TODO: Fix hardcoded path -spawn-at-startup "swaybg --image /home/cobertos/dotfiles/.config/niri/wallpapers/3_hypno_chimmie_firefly_videorelaxant6025.png" -spawn-at-startup "waybar" +spawn-at-startup "swaybg --image ./wallpapers/3_hypno_chimmie_firefly_videorelaxant6025.png" input { keyboard { diff --git a/.dockerignore b/.dockerignore index 107f9f1..0908068 100644 --- a/.dockerignore +++ b/.dockerignore @@ -15,9 +15,10 @@ Package Control.user-ca-bundle Package Control.cache/ Package Control.ca-certs/ -nix-installer - # Other old shit +bepis-old-fix.sh +.gitconfig # We use nix now..., but old systems still need the symlink, so just dont put in the container +desktop/ krita/ # Anything else with ignore. prefix in the name @@ -36,4 +37,4 @@ README.md # Ignore things that docker will have to fill itself when building (and dont # come by default) -config.nix +username.nix diff --git a/.gitignore b/.gitignore index f052e79..c904007 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,8 @@ Package Control.user-ca-bundle Package Control.cache/ Package Control.ca-certs/ -nix-installer +# Other old shit +bepis-old-fix.sh # Anything else with ignore. prefix in the name -ignore.* +ignore.* \ No newline at end of file diff --git a/README.md b/README.md index 479db93..6a44c41 100644 --- a/README.md +++ b/README.md @@ -1,98 +1,84 @@ # Dot Files +systemctl --user start activitywatch.target This repo contains: +* My home-manager configuration as a nix flake * My dotfiles and various configs -* Nix-flake-based home-manager configurations for installing it all (multiple flavors) -* A [Dockerfile](./dev.Dockerfile) that builds a few flavors of development containers based on the above +* A [dockerfile](./dev.Dockerfile) that builds an isolated development container with home-manager, nix, and my dotfiles in various flavors -It's not really just dotfiles anymore but... +Are these really just dotfiles anymore...? -### Guiding Principles +## Guiding Principles * **Linking** - Symlinks over copying * **Public** - Private keys and licenses are separate. -* **Reproducible** - `home-manager` does 97% of the heavy lifting +* **Reproducible** - `home-manager` does so much heavy lifting and there's only a few manual tweaks. * **Multi-environment** - There are multiple `home-manager` profiles that can be used -## Flavors +## Software -### `bare` +Deep configurations for: +* [micro-editor](https://micro-editor.github.io/) (instead of Sublime Text) +* [git](https://git-scm.com/) +* bash +* [firefox](https://firefox.com) +* [fd](https://github.com/sharkdp/fd) -Bare essentials for servers - -* [fd](https://github.com/sharkdp/fd) - for file searching -* [micro-editor](https://micro-editor.github.io/) + [many customizations](./nix/hm-micro-editor.nix) - for terminal IDE -* [other small, expected utilities](./bare.nix) - -### `desktop-niri` - -Main desktop, using the Niri window manager - -* [firefox](https://firefox.com) + [configuration](./nix/hm-firefox.nix) -* [niri](https://niri-wm.github.io/niri/index.html) - window manager - * + [waybar](https://github.com/alexays/waybar) - for taskbar - * + [niri_window_buttons](https://github.com/adelmonte/niri_window_buttons) - for taskbar windows _in sort order_ - * + [nirimon](https://github.com/stepbrobd/nirimon) - to configure displays - * + fuzzel - for launcher - * + swaybg - for backdrops - * + grim + slurp + satty - for screenshot editing, replaces Flameshot for me - * -* [activitywatch](https://activitywatch.net/) + watchers -* [kmonad](https://github.com/kmonad/kmonad) + [configuration](./kmonad.kbd) for custom macro pad inputs -* [sublime text](https://www.sublimetext.com/) + [packages configured through Nix](./nix/hm-sublime-text.nix) -* [other utilities](./desktop-niri.nix) - -### ~~`desktop-x11-generic`~~ -legacy, might use again, who knows - -### ~~`claude`~~ -legacy +Other installed software: +* [flameshot](https://flameshot.org/) +* [ffmpeg](https://www.ffmpeg.org/) +* [activitywatch](https://activitywatch.net/) ## Usage (from a bare system) ```bash cd ~ sudo apt update && sudo apt install git -git clone https://gitdab.com/cobertos/dotfiles.git +git clone https://github.com/Cobertos/dotfiles.git cd dotfiles # Installs nix ./dev.sh -# Run home-manager (replace with one of "bare","desktop-niri", etc...) +# Run home-manager (replace with one of "bare","home", etc...) nix run home-manager/master -- switch -b backup --flake .# # Run activitywatch target if not relogging systemctl --user start activitywatch.target ``` -and then there are some manual steps: - +## Manual steps * Firefox * Install extensions - -### TODO: Future Support -* Loose ends: Need to install nemo (file manager), gtk (+gtk configs) -* Blender -* OBS (and prefs to record into Seafile?) -* Voicemeeter Banana (Linux / Ubuntu equivalent?) -* Setup correct file associations (for .xml, .html, etc...) -* VLC Plugins -* Audacity and configurations -* /etc/hosts and C:\Windows\System32\drivers\etc\hosts or wherever it is in Windows -* Seafile notifications disabling? -* Configure keybindings (like for flameshot) -* Make `findcode` better/nicer. Can we have some sort of indexing search? -* Put Userscripts for Tampermonkey in here (or maybe submodule? would be nice to use their WebDAV interface) * Migrate from old computer * Insomnia configs (all the sqlite databases in Insomnia's home directory) * .ssh keys * Any environment variables holding keys * Firefox/Chrome/wherever history * Setup filesystem favorites -* Add all my wallpapers -* Make wallpapers rotate +### Linux specific manually +* Configure Linux Mint Desktop + * Change the theme to Dark (for Window borders, controls, and desktop) + * Change wallpapers/backgrouns to the folder that has them all in it + * Add a panel to every monitor, without grouped list applet merging and with window titles + * Change the Linux Mint start menu icon -### Historical versions of the dotfiles -* [when they worked using a custom Python library](https://gitdab.com/Cobertos/dotfiles/tree/departing-python) -* [when they were all Ansible](https://gitdab.com/Cobertos/dotfiles/tree/ansible) -* [when they were mainly Windows-based dotfiles](https://gitdab.com/Cobertos/dotfiles/tree/windows-df-old) +## TODO: Future Support +* Blender +* OBS (and prefs to record into Seafile?) +* Voicemeeter Banana (Linux / Ubuntu equivalent?) +* Setup correct file associations (for .xml, .html, etc...) +* VLC Plugins +* Audacity and configurations +* Make sure that Chrome/Firefox syncs settings for refined GitHub (looks like it worked) +* /etc/hosts and C:\Windows\System32\drivers\etc\hosts or wherever it is in Windows +* Seafile notifications disabling? +* Configure keybindings (like for flameshot) +* Add a little indicator to PS1 when dotfiles is out of date +* Make `findcode` better/nicer. Can we have some sort of indexing search? +* Put Userscripts for Tampermonkey in here (or maybe submodule? would be nice to use their WebDAV interface) +* Switch pip over to use the --user flag, or make it an option? Not sure what pipx needs? + +## Historical versions of the dotfiles +* My dotfiles [when they worked using a custom Python library](https://github.com/Cobertos/dotfiles/tree/departing-python) +* My dotfiles [when they were all Ansible](https://github.com/Cobertos/dotfiles/tree/ansible) +* My dotfiles [when they were mainly Windows-based dotfiles](https://github.com/Cobertos/dotfiles/tree/windows-df-old) diff --git a/bare.nix b/bare.nix index 70137ea..56017af 100644 --- a/bare.nix +++ b/bare.nix @@ -78,7 +78,7 @@ settings = { user.name = identity.git.name; user.email = identity.git.email; - core.excludesfile = "${dotfilesPath}/.config/git/.gitignore"; + core.excludesfile = "${dotfilesPath}/.gitignore"; core.editor = "micro"; init.defaultBranch = identity.git.defaultBranch; }; diff --git a/desktop-niri.nix b/desktop-niri.nix index d0474df..0fda9f3 100644 --- a/desktop-niri.nix +++ b/desktop-niri.nix @@ -32,9 +32,6 @@ niri ycwd # For keybind to open new terminal in the same cwd as focused one - alacritty - fuzzel - # Statusbar waybar font-awesome # for waybar @@ -66,62 +63,21 @@ #dejavu_fonts ]; - # TODO: Document this - targets.genericLinux.enable = true; - - 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"; - # enable gtk - gtk = { - enable = true; - colorScheme = "dark"; - theme = { - name = "Mint-X-Dark"; - package = pkgs.mint-themes; - }; - iconTheme = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; - }; - font = { - name = "DejaVu Sans"; - package = pkgs.dejavu_fonts; - size = 9; - }; - # cursorTheme = { - # name = "Vanilla-DMZ"; - # package = pkgs.vanilla-dmz; - # }; - }; - - # Register with systemd - #systemd.user.enable = true; - #systemd.user.packages = [ pkgs.niri ]; - systemd.user.services.niri.Service = { - ExecStart = "${pkgs.niri}/bin/niri --session"; - Type = "notify"; - Environment = [ - ''PATH=/home/%u/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/bin'' - ]; - }; - - home.file.".config/nirimon/profiles".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/nirimon/profiles"; services.activitywatch = { enable = true; watchers = { - # Only work on X11 - # aw-watcher-window = {}; - # aw-watcher-afk = {}; - # This one adds an afk watcher too! But it has issues if Wayland is inhibited from - # being idle (which happens if you leave music running and walk away, but I rarely do - # this) + #aw-watcher-afk = {}; + #aw-watcher-window = {}; aw-watcher-window-wayland = { package = pkgs.aw-watcher-window-wayland; }; diff --git a/desktop-x11-generic.nix b/desktop-x11-generic.nix index b71aa55..a5cd4d9 100644 --- a/desktop-x11-generic.nix +++ b/desktop-x11-generic.nix @@ -22,6 +22,4 @@ aw-watcher-window = {}; }; }; - - home.file.".config/flameshot/flameshot.ini".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/flameshot/flameshot.ini"; } diff --git a/desktop/krita.desktop b/desktop/krita.desktop new file mode 100644 index 0000000..89082e8 --- /dev/null +++ b/desktop/krita.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Krita +Icon=krita +Exec=/home/cobertos/bin/krita-5.1.5-x86_64.appimage %F +StartupNotify=true +Terminal=false +Type=Application +StartupWMClass=krita +X-AppImage-Version=5.1.5 +Comment=Digital Painting +Categories=Qt;KDE;Office;Graphics; +MimeType=application/x-krita;image/openraster;application/x-krita-paintoppreset; diff --git a/desktop/obsidian.desktop b/desktop/obsidian.desktop new file mode 100644 index 0000000..1a30546 --- /dev/null +++ b/desktop/obsidian.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Obsidian +Icon=obsidian +Exec=/home/cobertos/bin/Obsidian-1.4.16.AppImage %u +Terminal=false +Type=Application +StartupWMClass=obsidian +X-AppImage-Version=1.4.16 +Comment=Obsidian +Categories=Office; +MimeType=text/html;x-scheme-handler/obsidian; \ No newline at end of file diff --git a/.config/git/.gitignore b/git/.gitignore similarity index 100% rename from .config/git/.gitignore rename to git/.gitignore diff --git a/nix/hm-firefox.nix b/nix/hm-firefox.nix index 5b5da07..6b6e5a3 100644 --- a/nix/hm-firefox.nix +++ b/nix/hm-firefox.nix @@ -44,7 +44,6 @@ # return youtube dislike # facebook container # firefox multi account containers (MAC) - # activity watch # # # deferred on these ones for now: