Compare commits
11 commits
86fbd7649b
...
d74afee854
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d74afee854 | ||
|
|
df658a3005 | ||
|
|
bea7555988 | ||
|
|
7cc03ed9b0 | ||
|
|
9ea5fba614 | ||
|
|
0930a00e2b | ||
|
|
afcfa9974e | ||
|
|
4e02ed1a50 | ||
|
|
9380afef89 | ||
|
|
f1bf482619 | ||
|
|
d0003174dc |
11 changed files with 115 additions and 77 deletions
0
git/.gitignore → .config/git/.gitignore
vendored
0
git/.gitignore → .config/git/.gitignore
vendored
|
|
@ -1,7 +1,9 @@
|
||||||
// Check the wiki for a full description of the configuration:
|
// Check the wiki for a full description of the configuration:
|
||||||
// https://niri-wm.github.io/niri/Configuration:-Introduction
|
// https://niri-wm.github.io/niri/Configuration:-Introduction
|
||||||
|
|
||||||
spawn-at-startup "swaybg --image ./wallpapers/3_hypno_chimmie_firefly_videorelaxant6025.png"
|
// 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"
|
||||||
|
|
||||||
input {
|
input {
|
||||||
keyboard {
|
keyboard {
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,9 @@ Package Control.user-ca-bundle
|
||||||
Package Control.cache/
|
Package Control.cache/
|
||||||
Package Control.ca-certs/
|
Package Control.ca-certs/
|
||||||
|
|
||||||
|
nix-installer
|
||||||
|
|
||||||
# Other old shit
|
# 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/
|
krita/
|
||||||
|
|
||||||
# Anything else with ignore. prefix in the name
|
# Anything else with ignore. prefix in the name
|
||||||
|
|
@ -37,4 +36,4 @@ README.md
|
||||||
|
|
||||||
# Ignore things that docker will have to fill itself when building (and dont
|
# Ignore things that docker will have to fill itself when building (and dont
|
||||||
# come by default)
|
# come by default)
|
||||||
username.nix
|
config.nix
|
||||||
|
|
|
||||||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -15,8 +15,7 @@ Package Control.user-ca-bundle
|
||||||
Package Control.cache/
|
Package Control.cache/
|
||||||
Package Control.ca-certs/
|
Package Control.ca-certs/
|
||||||
|
|
||||||
# Other old shit
|
nix-installer
|
||||||
bepis-old-fix.sh
|
|
||||||
|
|
||||||
# Anything else with ignore. prefix in the name
|
# Anything else with ignore. prefix in the name
|
||||||
ignore.*
|
ignore.*
|
||||||
|
|
|
||||||
96
README.md
96
README.md
|
|
@ -1,84 +1,98 @@
|
||||||
# Dot Files
|
# Dot Files
|
||||||
systemctl --user start activitywatch.target
|
|
||||||
|
|
||||||
This repo contains:
|
This repo contains:
|
||||||
|
|
||||||
* My home-manager configuration as a nix flake
|
|
||||||
* My dotfiles and various configs
|
* My dotfiles and various configs
|
||||||
* A [dockerfile](./dev.Dockerfile) that builds an isolated development container with home-manager, nix, and my dotfiles in various flavors
|
* 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
|
||||||
|
|
||||||
Are these really just dotfiles anymore...?
|
It's not really just dotfiles anymore but...
|
||||||
|
|
||||||
## Guiding Principles
|
### Guiding Principles
|
||||||
|
|
||||||
* **Linking** - Symlinks over copying
|
* **Linking** - Symlinks over copying
|
||||||
* **Public** - Private keys and licenses are separate.
|
* **Public** - Private keys and licenses are separate.
|
||||||
* **Reproducible** - `home-manager` does so much heavy lifting and there's only a few manual tweaks.
|
* **Reproducible** - `home-manager` does 97% of the heavy lifting
|
||||||
* **Multi-environment** - There are multiple `home-manager` profiles that can be used
|
* **Multi-environment** - There are multiple `home-manager` profiles that can be used
|
||||||
|
|
||||||
## Software
|
## Flavors
|
||||||
|
|
||||||
Deep configurations for:
|
### `bare`
|
||||||
* [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)
|
|
||||||
|
|
||||||
Other installed software:
|
Bare essentials for servers
|
||||||
* [flameshot](https://flameshot.org/)
|
|
||||||
* [ffmpeg](https://www.ffmpeg.org/)
|
* [fd](https://github.com/sharkdp/fd) - for file searching
|
||||||
* [activitywatch](https://activitywatch.net/)
|
* [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
|
||||||
|
|
||||||
## Usage (from a bare system)
|
## Usage (from a bare system)
|
||||||
```bash
|
```bash
|
||||||
cd ~
|
cd ~
|
||||||
sudo apt update && sudo apt install git
|
sudo apt update && sudo apt install git
|
||||||
git clone https://github.com/Cobertos/dotfiles.git
|
git clone https://gitdab.com/cobertos/dotfiles.git
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
|
|
||||||
# Installs nix
|
# Installs nix
|
||||||
./dev.sh
|
./dev.sh
|
||||||
# Run home-manager (replace <flavor> with one of "bare","home", etc...)
|
# Run home-manager (replace <flavor> with one of "bare","desktop-niri", etc...)
|
||||||
nix run home-manager/master -- switch -b backup --flake .#<flavor>
|
nix run home-manager/master -- switch -b backup --flake .#<flavor>
|
||||||
# Run activitywatch target if not relogging
|
# Run activitywatch target if not relogging
|
||||||
systemctl --user start activitywatch.target
|
systemctl --user start activitywatch.target
|
||||||
```
|
```
|
||||||
|
|
||||||
## Manual steps
|
and then there are some manual steps:
|
||||||
|
|
||||||
* Firefox
|
* Firefox
|
||||||
* Install extensions
|
* Install extensions
|
||||||
* 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
|
|
||||||
|
|
||||||
### Linux specific manually
|
### TODO: Future Support
|
||||||
* Configure Linux Mint Desktop
|
* Loose ends: Need to install nemo (file manager), gtk (+gtk configs)
|
||||||
* 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
|
|
||||||
|
|
||||||
## TODO: Future Support
|
|
||||||
* Blender
|
* Blender
|
||||||
* OBS (and prefs to record into Seafile?)
|
* OBS (and prefs to record into Seafile?)
|
||||||
* Voicemeeter Banana (Linux / Ubuntu equivalent?)
|
* Voicemeeter Banana (Linux / Ubuntu equivalent?)
|
||||||
* Setup correct file associations (for .xml, .html, etc...)
|
* Setup correct file associations (for .xml, .html, etc...)
|
||||||
* VLC Plugins
|
* VLC Plugins
|
||||||
* Audacity and configurations
|
* 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
|
* /etc/hosts and C:\Windows\System32\drivers\etc\hosts or wherever it is in Windows
|
||||||
* Seafile notifications disabling?
|
* Seafile notifications disabling?
|
||||||
* Configure keybindings (like for flameshot)
|
* 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?
|
* 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)
|
* 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?
|
* 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
|
||||||
|
|
||||||
## Historical versions of the dotfiles
|
|
||||||
* My dotfiles [when they worked using a custom Python library](https://github.com/Cobertos/dotfiles/tree/departing-python)
|
### Historical versions of the dotfiles
|
||||||
* My dotfiles [when they were all Ansible](https://github.com/Cobertos/dotfiles/tree/ansible)
|
* [when they worked using a custom Python library](https://gitdab.com/Cobertos/dotfiles/tree/departing-python)
|
||||||
* My dotfiles [when they were mainly Windows-based dotfiles](https://github.com/Cobertos/dotfiles/tree/windows-df-old)
|
* [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)
|
||||||
|
|
|
||||||
2
bare.nix
2
bare.nix
|
|
@ -78,7 +78,7 @@
|
||||||
settings = {
|
settings = {
|
||||||
user.name = identity.git.name;
|
user.name = identity.git.name;
|
||||||
user.email = identity.git.email;
|
user.email = identity.git.email;
|
||||||
core.excludesfile = "${dotfilesPath}/.gitignore";
|
core.excludesfile = "${dotfilesPath}/.config/git/.gitignore";
|
||||||
core.editor = "micro";
|
core.editor = "micro";
|
||||||
init.defaultBranch = identity.git.defaultBranch;
|
init.defaultBranch = identity.git.defaultBranch;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,9 @@
|
||||||
niri
|
niri
|
||||||
ycwd # For keybind to open new terminal in the same cwd as focused one
|
ycwd # For keybind to open new terminal in the same cwd as focused one
|
||||||
|
|
||||||
|
alacritty
|
||||||
|
fuzzel
|
||||||
|
|
||||||
# Statusbar
|
# Statusbar
|
||||||
waybar
|
waybar
|
||||||
font-awesome # for waybar
|
font-awesome # for waybar
|
||||||
|
|
@ -63,21 +66,62 @@
|
||||||
#dejavu_fonts
|
#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/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/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/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/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";
|
home.file.".config/nirimon/profiles".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/nirimon/profiles";
|
||||||
|
|
||||||
services.activitywatch = {
|
services.activitywatch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
watchers = {
|
watchers = {
|
||||||
#aw-watcher-afk = {};
|
# Only work on X11
|
||||||
#aw-watcher-window = {};
|
# 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-window-wayland = {
|
aw-watcher-window-wayland = {
|
||||||
package = pkgs.aw-watcher-window-wayland;
|
package = pkgs.aw-watcher-window-wayland;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -22,4 +22,6 @@
|
||||||
aw-watcher-window = {};
|
aw-watcher-window = {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file.".config/flameshot/flameshot.ini".source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/flameshot/flameshot.ini";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
[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;
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
[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;
|
|
||||||
|
|
@ -44,6 +44,7 @@
|
||||||
# return youtube dislike
|
# return youtube dislike
|
||||||
# facebook container
|
# facebook container
|
||||||
# firefox multi account containers (MAC)
|
# firefox multi account containers (MAC)
|
||||||
|
# activity watch
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# deferred on these ones for now:
|
# deferred on these ones for now:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue