mirror of
https://github.com/szymon-jozef/amazing-dotfiles.git
synced 2026-09-07 12:10:45 +02:00
comituje
This commit is contained in:
13
README.md
13
README.md
@@ -15,6 +15,7 @@ My dotfiles managed with [home manager](https://github.com/nix-community/home-ma
|
||||
* Hyprlauncher
|
||||
* Hyprlock
|
||||
* Hyprsunset
|
||||
* Hyprtoolkit
|
||||
* Kitty
|
||||
* Mako
|
||||
* Nixvim
|
||||
@@ -44,15 +45,21 @@ As of today I'm using this repo with home manager. I'm still trying stuff out, b
|
||||
|
||||
# How to use this?
|
||||
You need to have [home manager](https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone) installed. Install needs to be **standalone**. It may not work as NixOS module.
|
||||
## Arch Linux
|
||||
## Settings
|
||||
You need to edit `flake.nix` to match your preferences.
|
||||
- If you want to use git, login with `gh auth login`, generate ssh key and put the pub key in the flake.
|
||||
- You also need to set your git credentials there
|
||||
- You can change the path of wallpaper dir.
|
||||
|
||||
### Arch Linux
|
||||
0. If you're extra lazy you can use `install_nix_and_home_manager_on_arch.sh` script to install nix and home-manager. Just run it with `chmod +x ./install_nix_and_home_manager_on_arch.sh && ./install_nix_and_home_manager_on_arch.sh`
|
||||
1. Copy this repo to `~/.config/home-manager` or somewhere else.
|
||||
2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path!
|
||||
3. Download all the dependencies `sudo yay -Syu --needed - < arch_packages.txt`. You can use any other aur helper if you want to, but be aware that regular pacman most likely won't work as `ashell` is not in regular repos yet.
|
||||
3. Download all the dependencies `yay -Syu --needed - < arch_packages.txt`. You can use any other aur helper if you want to, but be aware that regular pacman most likely won't work as `ashell` is not in regular repos yet.
|
||||
4. Run this command to apply all the configurations for the first time `home-manager switch --flake .#arch -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension.
|
||||
5. Enjoy! Now you can use [nh](https://github.com/nix-community/nh). So for example to switch use `nh home switch . -c arch --backup-extension backup`
|
||||
|
||||
## NixOS
|
||||
### NixOS
|
||||
1. Copy this repo to `~/.config/home-manager` or somewhere else.
|
||||
2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path!
|
||||
3. Run this command to apply all the configurations for the first time `home-manager switch --flake .#nixos -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension.
|
||||
|
||||
28
flake.lock
generated
28
flake.lock
generated
@@ -117,11 +117,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771683283,
|
||||
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
|
||||
"lastModified": 1771851181,
|
||||
"narHash": "sha256-gFgE6mGUftwseV3DUENMb0k0EiHd739lZexPo5O/sdQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
|
||||
"rev": "9a4b494b1aa1b93d8edf167f46dc8e0c0011280c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -546,9 +546,15 @@
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
<<<<<<< HEAD
|
||||
"hyprland": "hyprland",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixvim": "nixvim"
|
||||
=======
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixvim": "nixvim",
|
||||
"wallpapers": "wallpapers"
|
||||
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@@ -581,6 +587,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
@@ -619,6 +626,21 @@
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
=======
|
||||
"wallpapers": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1762937381,
|
||||
"narHash": "sha256-N+MZHSRcwOldS5Ai8B3YfKquKs9oeUW/GkV1iKM5+i8=",
|
||||
"owner": "orangci",
|
||||
"repo": "walls-catppuccin-mocha",
|
||||
"rev": "7bfdf10d16ad3a689f9f0cf3a0930da3d1a245a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "orangci",
|
||||
"repo": "walls-catppuccin-mocha",
|
||||
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
|
||||
39
flake.nix
39
flake.nix
@@ -8,7 +8,13 @@
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
wallpapers = {
|
||||
url = "github:orangci/walls-catppuccin-mocha";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -21,14 +27,27 @@
|
||||
home-manager,
|
||||
catppuccin,
|
||||
nixvim,
|
||||
wallpapers,
|
||||
...
|
||||
}@inputs:
|
||||
|
||||
let
|
||||
username = "szymon";
|
||||
# for git
|
||||
email = "szymon_jozef@proton.me";
|
||||
full_name = "Szymon P";
|
||||
userConfig = {
|
||||
username = "szymon";
|
||||
# for git
|
||||
email = "szymon_jozef@proton.me";
|
||||
fullName = "Szymon P";
|
||||
# your public ssh key
|
||||
signingKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKxyiqawA95AlLjXGd99sQCVR2rDq2/D7PG/vz7sZv5G";
|
||||
|
||||
mainMonitor = "DP-1"; # only for some applications: you still need to set hyprland monitors yourself!
|
||||
statusBar = "ashell"; # available: ashell|waybar
|
||||
|
||||
pathConfig = {
|
||||
wallpaper = "Obrazy/tapety/catppuccin";
|
||||
};
|
||||
|
||||
};
|
||||
in
|
||||
{
|
||||
homeConfigurations = {
|
||||
@@ -36,10 +55,15 @@
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
<<<<<<< HEAD
|
||||
username
|
||||
email
|
||||
full_name
|
||||
inputs
|
||||
=======
|
||||
inputs
|
||||
userConfig
|
||||
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
|
||||
;
|
||||
isNixOS = false;
|
||||
};
|
||||
@@ -54,17 +78,22 @@
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
<<<<<<< HEAD
|
||||
username
|
||||
email
|
||||
full_name
|
||||
inputs
|
||||
=======
|
||||
inputs
|
||||
userConfig
|
||||
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
|
||||
;
|
||||
isNixOS = true;
|
||||
};
|
||||
modules = [
|
||||
./home.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
nixvim.homeManagerModules.nixvim
|
||||
nixvim.homeModules.nixvim
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
10
home.nix
10
home.nix
@@ -1,12 +1,13 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
inputs,
|
||||
userConfig,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home.username = username;
|
||||
home.homeDirectory = "/home/${username}";
|
||||
home.username = userConfig.username;
|
||||
home.homeDirectory = "/home/${userConfig.username}";
|
||||
|
||||
nix = {
|
||||
package = pkgs.nix;
|
||||
@@ -40,11 +41,13 @@
|
||||
./modules/cli/bat.nix
|
||||
./modules/cli/git.nix
|
||||
./modules/cli/fastfetch.nix
|
||||
./modules/cli/kdeconnect.nix
|
||||
# gui tools
|
||||
./modules/gui/kitty.nix
|
||||
./modules/gui/satty.nix
|
||||
./modules/gui/mako.nix
|
||||
./modules/gui/mangohud.nix
|
||||
./modules/gui/browsers.nix
|
||||
# status bars
|
||||
./modules/bars/ashell.nix
|
||||
./modules/bars/waybar.nix
|
||||
@@ -60,6 +63,7 @@
|
||||
# === SCRIPTS IMPORT ===
|
||||
home.file = {
|
||||
".local/bin".source = ./scripts;
|
||||
${userConfig.pathConfig.wallpaper}.source = inputs.wallpapers;
|
||||
};
|
||||
|
||||
# === VARS ===
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
{ lib, isNixOS, ... }:
|
||||
{
|
||||
lib,
|
||||
isNixOS,
|
||||
userConfig,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.ashell = {
|
||||
@@ -6,7 +12,7 @@
|
||||
package = lib.mkIf (!isNixOS) null;
|
||||
settings = {
|
||||
outputs = {
|
||||
Targets = [ "DP-1" ];
|
||||
Targets = [ userConfig.mainMonitor ];
|
||||
};
|
||||
position = "Bottom";
|
||||
modules = {
|
||||
@@ -21,12 +27,46 @@
|
||||
"MediaPlayer"
|
||||
"SystemInfo"
|
||||
[
|
||||
"CustomNotifications"
|
||||
"Tray"
|
||||
"Settings"
|
||||
]
|
||||
];
|
||||
};
|
||||
|
||||
CustomModule = [
|
||||
{
|
||||
name = "CustomNotifications";
|
||||
icon = "";
|
||||
command = "${pkgs.writeShellScript "dnd-toggle" ''
|
||||
if makoctl mode | grep -q do-not-disturb; then
|
||||
makoctl mode -r do-not-disturb > /dev/null
|
||||
else
|
||||
makoctl mode -a do-not-disturb > /dev/null
|
||||
fi
|
||||
pkill -USR1 -f dnd-check
|
||||
''}";
|
||||
listen_cmd = "${pkgs.writeShellScript "dnd-check" ''
|
||||
print_state() {
|
||||
if makoctl mode | grep -q do-not-disturb; then
|
||||
echo '{"alt":"dnd"}'
|
||||
else
|
||||
echo '{"alt":"none"}'
|
||||
fi
|
||||
}
|
||||
|
||||
trap print_state USR1
|
||||
|
||||
print_state
|
||||
|
||||
while true; do
|
||||
sleep infinity & wait $!
|
||||
done
|
||||
''}";
|
||||
icons.dnd = "";
|
||||
}
|
||||
];
|
||||
|
||||
clock = {
|
||||
format = "%H:%M | %e.%m ";
|
||||
};
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
pkgs,
|
||||
isNixOS,
|
||||
userConfig,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -22,9 +23,7 @@
|
||||
reload_style_on_change = true;
|
||||
width = 70;
|
||||
output = [
|
||||
"DP-1"
|
||||
"eDP-1"
|
||||
"LVDS-1"
|
||||
userConfig.mainMonitor
|
||||
];
|
||||
|
||||
modules-left = [
|
||||
|
||||
@@ -3,105 +3,112 @@
|
||||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
loginShellInit = ''
|
||||
fish_add_path --move --prepend --path "$HOME/.nix-profile/bin" /nix/var/nix/profiles/default/bin /run/current-system/sw/bin
|
||||
'';
|
||||
loginShellInit = # fish
|
||||
''
|
||||
fish_add_path --move --prepend --path "$HOME/.nix-profile/bin" /nix/var/nix/profiles/default/bin /run/current-system/sw/bin
|
||||
'';
|
||||
|
||||
interactiveShellInit = ''
|
||||
# no dum greeting
|
||||
set fish_greeting ""
|
||||
interactiveShellInit = # fish
|
||||
''
|
||||
# no dum greeting
|
||||
set fish_greeting ""
|
||||
|
||||
set -gx GPG_TTY (tty)
|
||||
set -gx GPG_TTY (tty)
|
||||
|
||||
fish_vi_key_bindings
|
||||
fish_vi_key_bindings
|
||||
|
||||
fastfetch --config ~/.config/fastfetch/startup.jsonc
|
||||
'';
|
||||
fastfetch --config ~/.config/fastfetch/startup.jsonc
|
||||
'';
|
||||
|
||||
functions = {
|
||||
edit_dotfile = {
|
||||
description = "Edit config file, reload, commit and push";
|
||||
body = ''
|
||||
set -l config_dir "$HOME/.config/home-manager"
|
||||
set -l file
|
||||
body = # fish
|
||||
''
|
||||
set -l config_dir "$HOME/.config/home-manager"
|
||||
set -l file
|
||||
|
||||
if test (count $argv) -gt 0
|
||||
set file $argv[1]
|
||||
else
|
||||
set file (fd . $config_dir --type f --exclude ".git" | fzf)
|
||||
end
|
||||
if test (count $argv) -gt 0
|
||||
set file $argv[1]
|
||||
else
|
||||
set file (fd . $config_dir --type f --exclude ".git" | fzf)
|
||||
end
|
||||
|
||||
if test -n "$file"
|
||||
set -l md5_before (md5sum $file)
|
||||
pushd $config_dir
|
||||
|
||||
nvim $file
|
||||
if test -n "$file"
|
||||
set -l md5_before (md5sum $file)
|
||||
pushd $config_dir
|
||||
|
||||
nvim $file
|
||||
|
||||
if test "$md5_before" != (md5sum $file)
|
||||
echo "Changes made. Preparing commit..."
|
||||
|
||||
set -l rel_file (realpath --relative-to=$config_dir $file)
|
||||
|
||||
if home-manager switch --flake "$config_dir#${
|
||||
if isNixOS then "nixos" else "arch"
|
||||
}" -b backup
|
||||
git add -A
|
||||
set commit_msg "update: $rel_file"
|
||||
git commit -m "$commit_msg"
|
||||
git push
|
||||
end
|
||||
else
|
||||
echo "No changes made"
|
||||
end
|
||||
popd
|
||||
end
|
||||
'';
|
||||
if test "$md5_before" != (md5sum $file)
|
||||
echo "Changes made. Preparing commit..."
|
||||
|
||||
set -l rel_file (realpath --relative-to=$config_dir $file)
|
||||
|
||||
if home-manager switch --flake "$config_dir#${
|
||||
if isNixOS then "nixos" else "arch"
|
||||
}" -b backup
|
||||
git add -A
|
||||
set commit_msg "update: $rel_file"
|
||||
git commit -m "$commit_msg"
|
||||
git push
|
||||
end
|
||||
else
|
||||
echo "No changes made"
|
||||
end
|
||||
popd
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
||||
ls = {
|
||||
body = "eza --long --icons --group-directories-first --git $argv";
|
||||
body = # fish
|
||||
"eza --long --icons --group-directories-first --git $argv";
|
||||
};
|
||||
|
||||
lst = {
|
||||
body = "eza --long --icons --color --git --tree $argv";
|
||||
body = # fish
|
||||
"eza --long --icons --color --git --tree $argv";
|
||||
};
|
||||
|
||||
cp_mail = {
|
||||
body = "pandoc $argv -t html |wl-copy -t text/html";
|
||||
body = # fish
|
||||
"pandoc $argv -t html |wl-copy -t text/html";
|
||||
};
|
||||
|
||||
update = {
|
||||
body = ''
|
||||
echo "===System update==="
|
||||
body = # fish
|
||||
''
|
||||
echo "===System update==="
|
||||
|
||||
if not type -q yay
|
||||
echo "Yay not found… Is this Arch? If yes, then please consider installing it!"
|
||||
else
|
||||
yay
|
||||
end
|
||||
if not type -q yay
|
||||
echo "Yay not found… Is this Arch? If yes, then please consider installing it!"
|
||||
else
|
||||
yay
|
||||
end
|
||||
|
||||
if type -q pacman
|
||||
echo "===Remove orphans==="
|
||||
set orphans (pacman -Qtdq)
|
||||
if test (count $orphans) -gt 0
|
||||
sudo pacman -Rns $orphans
|
||||
end
|
||||
end
|
||||
if type -q pacman
|
||||
echo "===Remove orphans==="
|
||||
set orphans (pacman -Qtdq)
|
||||
if test (count $orphans) -gt 0
|
||||
sudo pacman -Rns $orphans
|
||||
end
|
||||
end
|
||||
|
||||
if type -q flatpak
|
||||
echo "===Flatpak update==="
|
||||
flatpak update --noninteractive
|
||||
echo "===Flatpak remove unused==="
|
||||
flatpak uninstall --unused
|
||||
end
|
||||
if type -q flatpak
|
||||
echo "===Flatpak update==="
|
||||
flatpak update --noninteractive
|
||||
echo "===Flatpak remove unused==="
|
||||
flatpak uninstall --unused
|
||||
end
|
||||
|
||||
if type -q nix-channel
|
||||
echo "===Nix update==="
|
||||
nix-channel --update
|
||||
echo "===Nix garbage collection==="
|
||||
home-manager expire-generations "-7 days"
|
||||
end
|
||||
'';
|
||||
if type -q nix-channel
|
||||
echo "===Nix update==="
|
||||
nix-channel --update
|
||||
echo "===Nix garbage collection==="
|
||||
home-manager expire-generations "-7 days"
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
||||
rm = {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
full_name,
|
||||
email,
|
||||
userConfig,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -14,17 +13,30 @@
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = full_name;
|
||||
email = email;
|
||||
name = userConfig.fullName;
|
||||
email = userConfig.email;
|
||||
};
|
||||
init.defaultBranch = "master";
|
||||
push.autoSetupRemote = true;
|
||||
core.editor = "nvim";
|
||||
|
||||
gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers";
|
||||
|
||||
pull.rebase = false;
|
||||
|
||||
merge.tool = "nvimdiff";
|
||||
mergetool.prompt = false;
|
||||
mergetool.keepBackup = false;
|
||||
};
|
||||
|
||||
signing = {
|
||||
<<<<<<< HEAD
|
||||
key = email;
|
||||
signByDefault = false;
|
||||
=======
|
||||
key = userConfig.signingKey;
|
||||
signByDefault = true;
|
||||
format = "ssh";
|
||||
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
|
||||
};
|
||||
|
||||
ignores = [
|
||||
@@ -38,6 +50,15 @@
|
||||
|
||||
};
|
||||
|
||||
programs.gh = {
|
||||
enable = true;
|
||||
settings.git_protocol = "ssh";
|
||||
};
|
||||
|
||||
home.file.".ssh/allowed_signers".text = ''
|
||||
${userConfig.email} ${userConfig.signingKey}
|
||||
'';
|
||||
|
||||
programs.delta = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
|
||||
8
modules/cli/kdeconnect.nix
Normal file
8
modules/cli/kdeconnect.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ username, ... }:
|
||||
{ userConfig, ... }:
|
||||
|
||||
{
|
||||
services.ssh-agent.enable = true;
|
||||
@@ -10,13 +10,13 @@
|
||||
matchBlocks = {
|
||||
"dmowski" = {
|
||||
hostname = "192.168.0.30";
|
||||
user = username;
|
||||
user = userConfig.username;
|
||||
port = 22;
|
||||
identityFile = "~/.ssh/dmowski";
|
||||
};
|
||||
|
||||
"aur.archlinux.org" = {
|
||||
user = username;
|
||||
user = userConfig.username;
|
||||
identityFile = "~/.ssh/aur";
|
||||
};
|
||||
|
||||
|
||||
8
modules/gui/browsers.nix
Normal file
8
modules/gui/browsers.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ isNixOS, lib, ... }:
|
||||
|
||||
{
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = lib.mkIf (!isNixOS) null;
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
isNixOS,
|
||||
username,
|
||||
userConfig,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
fullscreen = true;
|
||||
early-exit = true;
|
||||
initial-tool = "crop";
|
||||
output-filename = "/home/${username}/Obrazy/zrzuty/%d-%m-%Y_%H:%M:%S.png";
|
||||
output-filename = "/home/${userConfig.username}/Obrazy/zrzuty/%d-%m-%Y_%H:%M:%S.png";
|
||||
save-after-copy = true;
|
||||
copy-command = "wl-copy";
|
||||
disable-notifications = false;
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
{
|
||||
<<<<<<< HEAD
|
||||
inputs,
|
||||
pkgs,
|
||||
isNixOS,
|
||||
lib,
|
||||
=======
|
||||
isNixOS,
|
||||
lib,
|
||||
userConfig,
|
||||
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -151,8 +157,7 @@
|
||||
"exec-once" = [
|
||||
"wl-paste --type text --watch cliphist store"
|
||||
"wl-paste --type image --watch cliphist store"
|
||||
"uwsm app -- kdeconnect-indicator"
|
||||
"uwsm app -- ashell"
|
||||
"uwsm app -- ${userConfig.statusBar}"
|
||||
"swww-daemon"
|
||||
"openrgb -c $openrgb_color"
|
||||
];
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
identity = true;
|
||||
}
|
||||
{
|
||||
time = "21:00";
|
||||
time = "21:30";
|
||||
identity = false;
|
||||
temperature = 4500;
|
||||
gamma = 0.8;
|
||||
|
||||
Reference in New Issue
Block a user