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:
|
// 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
|
||||||
|
|
||||||
// TODO: Fix hardcoded path
|
spawn-at-startup "swaybg --image ./wallpapers/3_hypno_chimmie_firefly_videorelaxant6025.png"
|
||||||
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,9 +15,10 @@ 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
|
||||||
|
|
@ -36,4 +37,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)
|
||||||
config.nix
|
username.nix
|
||||||
|
|
|
||||||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -15,7 +15,8 @@ Package Control.user-ca-bundle
|
||||||
Package Control.cache/
|
Package Control.cache/
|
||||||
Package Control.ca-certs/
|
Package Control.ca-certs/
|
||||||
|
|
||||||
nix-installer
|
# Other old shit
|
||||||
|
bepis-old-fix.sh
|
||||||
|
|
||||||
# Anything else with ignore. prefix in the name
|
# Anything else with ignore. prefix in the name
|
||||||
ignore.*
|
ignore.*
|
||||||
106
README.md
106
README.md
|
|
@ -1,98 +1,84 @@
|
||||||
# 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
|
||||||
* Nix-flake-based home-manager configurations for installing it all (multiple flavors)
|
* A [dockerfile](./dev.Dockerfile) that builds an isolated development container with home-manager, nix, and my dotfiles in various flavors
|
||||||
* A [Dockerfile](./dev.Dockerfile) that builds a few flavors of development containers based on the above
|
|
||||||
|
|
||||||
It's not really just dotfiles anymore but...
|
Are these really just dotfiles anymore...?
|
||||||
|
|
||||||
### 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 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
|
* **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
|
Other installed software:
|
||||||
|
* [flameshot](https://flameshot.org/)
|
||||||
* [fd](https://github.com/sharkdp/fd) - for file searching
|
* [ffmpeg](https://www.ffmpeg.org/)
|
||||||
* [micro-editor](https://micro-editor.github.io/) + [many customizations](./nix/hm-micro-editor.nix) - for terminal IDE
|
* [activitywatch](https://activitywatch.net/)
|
||||||
* [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://gitdab.com/cobertos/dotfiles.git
|
git clone https://github.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","desktop-niri", etc...)
|
# Run home-manager (replace <flavor> with one of "bare","home", 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
|
||||||
```
|
```
|
||||||
|
|
||||||
and then there are some manual steps:
|
## Manual steps
|
||||||
|
|
||||||
* Firefox
|
* Firefox
|
||||||
* Install extensions
|
* 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
|
* Migrate from old computer
|
||||||
* Insomnia configs (all the sqlite databases in Insomnia's home directory)
|
* Insomnia configs (all the sqlite databases in Insomnia's home directory)
|
||||||
* .ssh keys
|
* .ssh keys
|
||||||
* Any environment variables holding keys
|
* Any environment variables holding keys
|
||||||
* Firefox/Chrome/wherever history
|
* Firefox/Chrome/wherever history
|
||||||
* Setup filesystem favorites
|
* 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
|
## TODO: Future Support
|
||||||
* [when they worked using a custom Python library](https://gitdab.com/Cobertos/dotfiles/tree/departing-python)
|
* Blender
|
||||||
* [when they were all Ansible](https://gitdab.com/Cobertos/dotfiles/tree/ansible)
|
* OBS (and prefs to record into Seafile?)
|
||||||
* [when they were mainly Windows-based dotfiles](https://gitdab.com/Cobertos/dotfiles/tree/windows-df-old)
|
* 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 = {
|
settings = {
|
||||||
user.name = identity.git.name;
|
user.name = identity.git.name;
|
||||||
user.email = identity.git.email;
|
user.email = identity.git.email;
|
||||||
core.excludesfile = "${dotfilesPath}/.config/git/.gitignore";
|
core.excludesfile = "${dotfilesPath}/.gitignore";
|
||||||
core.editor = "micro";
|
core.editor = "micro";
|
||||||
init.defaultBranch = identity.git.defaultBranch;
|
init.defaultBranch = identity.git.defaultBranch;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,6 @@
|
||||||
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
|
||||||
|
|
@ -66,62 +63,21 @@
|
||||||
#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 = {
|
||||||
# Only work on X11
|
#aw-watcher-afk = {};
|
||||||
# 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,6 +22,4 @@
|
||||||
aw-watcher-window = {};
|
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
|
# 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