Compare commits
No commits in common. "d74afee854642961d7187250b354acdedf4fe665" and "86fbd7649b4be284b2b088ba6c44b81d9664c52b" have entirely different histories.
d74afee854
...
86fbd7649b
11 changed files with 77 additions and 115 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -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.*
|
||||
106
README.md
106
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 <!-- [see this configuration]() -->
|
||||
*
|
||||
* [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 <flavor> with one of "bare","desktop-niri", etc...)
|
||||
# Run home-manager (replace <flavor> with one of "bare","home", etc...)
|
||||
nix run home-manager/master -- switch -b backup --flake .#<flavor>
|
||||
# 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)
|
||||
|
|
|
|||
2
bare.nix
2
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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,6 +22,4 @@
|
|||
aw-watcher-window = {};
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/flameshot/flameshot.ini".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/flameshot/flameshot.ini";
|
||||
}
|
||||
|
|
|
|||
12
desktop/krita.desktop
Normal file
12
desktop/krita.desktop
Normal file
|
|
@ -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;
|
||||
11
desktop/obsidian.desktop
Normal file
11
desktop/obsidian.desktop
Normal file
|
|
@ -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;
|
||||
0
.config/git/.gitignore → git/.gitignore
vendored
0
.config/git/.gitignore → git/.gitignore
vendored
|
|
@ -44,7 +44,6 @@
|
|||
# return youtube dislike
|
||||
# facebook container
|
||||
# firefox multi account containers (MAC)
|
||||
# activity watch
|
||||
#
|
||||
#
|
||||
# deferred on these ones for now:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue