This commit is contained in:
2026-02-24 23:39:07 +01:00
14 changed files with 254 additions and 104 deletions

View File

@@ -15,6 +15,7 @@ My dotfiles managed with [home manager](https://github.com/nix-community/home-ma
* Hyprlauncher * Hyprlauncher
* Hyprlock * Hyprlock
* Hyprsunset * Hyprsunset
* Hyprtoolkit
* Kitty * Kitty
* Mako * Mako
* Nixvim * 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? # 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. 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` 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. 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! 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. 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` 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. 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! 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. 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
View File

@@ -117,11 +117,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771683283, "lastModified": 1771851181,
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=", "narHash": "sha256-gFgE6mGUftwseV3DUENMb0k0EiHd739lZexPo5O/sdQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a", "rev": "9a4b494b1aa1b93d8edf167f46dc8e0c0011280c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -546,9 +546,15 @@
"inputs": { "inputs": {
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"home-manager": "home-manager", "home-manager": "home-manager",
<<<<<<< HEAD
"hyprland": "hyprland", "hyprland": "hyprland",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nixvim": "nixvim" "nixvim": "nixvim"
=======
"nixpkgs": "nixpkgs_2",
"nixvim": "nixvim",
"wallpapers": "wallpapers"
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
} }
}, },
"systems": { "systems": {
@@ -581,6 +587,7 @@
"type": "github" "type": "github"
} }
}, },
<<<<<<< HEAD
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [
@@ -619,6 +626,21 @@
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "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" "type": "github"
} }
} }

View File

@@ -8,7 +8,13 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
catppuccin.url = "github:catppuccin/nix"; catppuccin.url = "github:catppuccin/nix";
wallpapers = {
url = "github:orangci/walls-catppuccin-mocha";
flake = false;
};
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -21,14 +27,27 @@
home-manager, home-manager,
catppuccin, catppuccin,
nixvim, nixvim,
wallpapers,
... ...
}@inputs: }@inputs:
let let
username = "szymon"; userConfig = {
# for git username = "szymon";
email = "szymon_jozef@proton.me"; # for git
full_name = "Szymon P"; 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 in
{ {
homeConfigurations = { homeConfigurations = {
@@ -36,10 +55,15 @@
pkgs = import nixpkgs { system = "x86_64-linux"; }; pkgs = import nixpkgs { system = "x86_64-linux"; };
extraSpecialArgs = { extraSpecialArgs = {
inherit inherit
<<<<<<< HEAD
username username
email email
full_name full_name
inputs inputs
=======
inputs
userConfig
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
; ;
isNixOS = false; isNixOS = false;
}; };
@@ -54,17 +78,22 @@
pkgs = import nixpkgs { system = "x86_64-linux"; }; pkgs = import nixpkgs { system = "x86_64-linux"; };
extraSpecialArgs = { extraSpecialArgs = {
inherit inherit
<<<<<<< HEAD
username username
email email
full_name full_name
inputs inputs
=======
inputs
userConfig
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
; ;
isNixOS = true; isNixOS = true;
}; };
modules = [ modules = [
./home.nix ./home.nix
catppuccin.homeModules.catppuccin catppuccin.homeModules.catppuccin
nixvim.homeManagerModules.nixvim nixvim.homeModules.nixvim
]; ];
}; };
}; };

View File

@@ -1,12 +1,13 @@
{ {
pkgs, pkgs,
username, inputs,
userConfig,
... ...
}: }:
{ {
home.username = username; home.username = userConfig.username;
home.homeDirectory = "/home/${username}"; home.homeDirectory = "/home/${userConfig.username}";
nix = { nix = {
package = pkgs.nix; package = pkgs.nix;
@@ -40,11 +41,13 @@
./modules/cli/bat.nix ./modules/cli/bat.nix
./modules/cli/git.nix ./modules/cli/git.nix
./modules/cli/fastfetch.nix ./modules/cli/fastfetch.nix
./modules/cli/kdeconnect.nix
# gui tools # gui tools
./modules/gui/kitty.nix ./modules/gui/kitty.nix
./modules/gui/satty.nix ./modules/gui/satty.nix
./modules/gui/mako.nix ./modules/gui/mako.nix
./modules/gui/mangohud.nix ./modules/gui/mangohud.nix
./modules/gui/browsers.nix
# status bars # status bars
./modules/bars/ashell.nix ./modules/bars/ashell.nix
./modules/bars/waybar.nix ./modules/bars/waybar.nix
@@ -60,6 +63,7 @@
# === SCRIPTS IMPORT === # === SCRIPTS IMPORT ===
home.file = { home.file = {
".local/bin".source = ./scripts; ".local/bin".source = ./scripts;
${userConfig.pathConfig.wallpaper}.source = inputs.wallpapers;
}; };
# === VARS === # === VARS ===

View File

@@ -1,4 +1,10 @@
{ lib, isNixOS, ... }: {
lib,
isNixOS,
userConfig,
pkgs,
...
}:
{ {
programs.ashell = { programs.ashell = {
@@ -6,7 +12,7 @@
package = lib.mkIf (!isNixOS) null; package = lib.mkIf (!isNixOS) null;
settings = { settings = {
outputs = { outputs = {
Targets = [ "DP-1" ]; Targets = [ userConfig.mainMonitor ];
}; };
position = "Bottom"; position = "Bottom";
modules = { modules = {
@@ -21,12 +27,46 @@
"MediaPlayer" "MediaPlayer"
"SystemInfo" "SystemInfo"
[ [
"CustomNotifications"
"Tray" "Tray"
"Settings" "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 = { clock = {
format = "%H:%M | %e.%m "; format = "%H:%M | %e.%m ";
}; };

View File

@@ -1,6 +1,7 @@
{ {
pkgs, pkgs,
isNixOS, isNixOS,
userConfig,
... ...
}: }:
@@ -22,9 +23,7 @@
reload_style_on_change = true; reload_style_on_change = true;
width = 70; width = 70;
output = [ output = [
"DP-1" userConfig.mainMonitor
"eDP-1"
"LVDS-1"
]; ];
modules-left = [ modules-left = [

View File

@@ -3,105 +3,112 @@
{ {
programs.fish = { programs.fish = {
enable = true; enable = true;
loginShellInit = '' loginShellInit = # fish
fish_add_path --move --prepend --path "$HOME/.nix-profile/bin" /nix/var/nix/profiles/default/bin /run/current-system/sw/bin ''
''; fish_add_path --move --prepend --path "$HOME/.nix-profile/bin" /nix/var/nix/profiles/default/bin /run/current-system/sw/bin
'';
interactiveShellInit = '' interactiveShellInit = # fish
# no dum greeting ''
set fish_greeting "" # 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 = { functions = {
edit_dotfile = { edit_dotfile = {
description = "Edit config file, reload, commit and push"; description = "Edit config file, reload, commit and push";
body = '' body = # fish
set -l config_dir "$HOME/.config/home-manager" ''
set -l file set -l config_dir "$HOME/.config/home-manager"
set -l file
if test (count $argv) -gt 0 if test (count $argv) -gt 0
set file $argv[1] set file $argv[1]
else else
set file (fd . $config_dir --type f --exclude ".git" | fzf) set file (fd . $config_dir --type f --exclude ".git" | fzf)
end end
if test -n "$file" if test -n "$file"
set -l md5_before (md5sum $file) set -l md5_before (md5sum $file)
pushd $config_dir pushd $config_dir
nvim $file nvim $file
if test "$md5_before" != (md5sum $file) if test "$md5_before" != (md5sum $file)
echo "Changes made. Preparing commit..." echo "Changes made. Preparing commit..."
set -l rel_file (realpath --relative-to=$config_dir $file) set -l rel_file (realpath --relative-to=$config_dir $file)
if home-manager switch --flake "$config_dir#${ if home-manager switch --flake "$config_dir#${
if isNixOS then "nixos" else "arch" if isNixOS then "nixos" else "arch"
}" -b backup }" -b backup
git add -A git add -A
set commit_msg "update: $rel_file" set commit_msg "update: $rel_file"
git commit -m "$commit_msg" git commit -m "$commit_msg"
git push git push
end end
else else
echo "No changes made" echo "No changes made"
end end
popd popd
end end
''; '';
}; };
ls = { ls = {
body = "eza --long --icons --group-directories-first --git $argv"; body = # fish
"eza --long --icons --group-directories-first --git $argv";
}; };
lst = { lst = {
body = "eza --long --icons --color --git --tree $argv"; body = # fish
"eza --long --icons --color --git --tree $argv";
}; };
cp_mail = { cp_mail = {
body = "pandoc $argv -t html |wl-copy -t text/html"; body = # fish
"pandoc $argv -t html |wl-copy -t text/html";
}; };
update = { update = {
body = '' body = # fish
echo "===System update===" ''
echo "===System update==="
if not type -q yay if not type -q yay
echo "Yay not found… Is this Arch? If yes, then please consider installing it!" echo "Yay not found… Is this Arch? If yes, then please consider installing it!"
else else
yay yay
end end
if type -q pacman if type -q pacman
echo "===Remove orphans===" echo "===Remove orphans==="
set orphans (pacman -Qtdq) set orphans (pacman -Qtdq)
if test (count $orphans) -gt 0 if test (count $orphans) -gt 0
sudo pacman -Rns $orphans sudo pacman -Rns $orphans
end end
end end
if type -q flatpak if type -q flatpak
echo "===Flatpak update===" echo "===Flatpak update==="
flatpak update --noninteractive flatpak update --noninteractive
echo "===Flatpak remove unused===" echo "===Flatpak remove unused==="
flatpak uninstall --unused flatpak uninstall --unused
end end
if type -q nix-channel if type -q nix-channel
echo "===Nix update===" echo "===Nix update==="
nix-channel --update nix-channel --update
echo "===Nix garbage collection===" echo "===Nix garbage collection==="
home-manager expire-generations "-7 days" home-manager expire-generations "-7 days"
end end
''; '';
}; };
rm = { rm = {

View File

@@ -1,7 +1,6 @@
{ {
pkgs, pkgs,
full_name, userConfig,
email,
... ...
}: }:
@@ -14,17 +13,30 @@
enable = true; enable = true;
settings = { settings = {
user = { user = {
name = full_name; name = userConfig.fullName;
email = email; email = userConfig.email;
}; };
init.defaultBranch = "master"; init.defaultBranch = "master";
push.autoSetupRemote = true; 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 = { signing = {
<<<<<<< HEAD
key = email; key = email;
signByDefault = false; signByDefault = false;
=======
key = userConfig.signingKey;
signByDefault = true;
format = "ssh";
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
}; };
ignores = [ 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 = { programs.delta = {
enable = true; enable = true;
enableGitIntegration = true; enableGitIntegration = true;

View File

@@ -0,0 +1,8 @@
{ ... }:
{
services.kdeconnect = {
enable = true;
indicator = true;
};
}

View File

@@ -1,4 +1,4 @@
{ username, ... }: { userConfig, ... }:
{ {
services.ssh-agent.enable = true; services.ssh-agent.enable = true;
@@ -10,13 +10,13 @@
matchBlocks = { matchBlocks = {
"dmowski" = { "dmowski" = {
hostname = "192.168.0.30"; hostname = "192.168.0.30";
user = username; user = userConfig.username;
port = 22; port = 22;
identityFile = "~/.ssh/dmowski"; identityFile = "~/.ssh/dmowski";
}; };
"aur.archlinux.org" = { "aur.archlinux.org" = {
user = username; user = userConfig.username;
identityFile = "~/.ssh/aur"; identityFile = "~/.ssh/aur";
}; };

8
modules/gui/browsers.nix Normal file
View File

@@ -0,0 +1,8 @@
{ isNixOS, lib, ... }:
{
programs.chromium = {
enable = true;
package = lib.mkIf (!isNixOS) null;
};
}

View File

@@ -1,7 +1,7 @@
{ {
lib, lib,
isNixOS, isNixOS,
username, userConfig,
... ...
}: }:
@@ -14,7 +14,7 @@
fullscreen = true; fullscreen = true;
early-exit = true; early-exit = true;
initial-tool = "crop"; 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; save-after-copy = true;
copy-command = "wl-copy"; copy-command = "wl-copy";
disable-notifications = false; disable-notifications = false;

View File

@@ -1,8 +1,14 @@
{ {
<<<<<<< HEAD
inputs, inputs,
pkgs, pkgs,
isNixOS, isNixOS,
lib, lib,
=======
isNixOS,
lib,
userConfig,
>>>>>>> c77553344515b404d765c04e1e472dac1cf4bb94
... ...
}: }:
@@ -151,8 +157,7 @@
"exec-once" = [ "exec-once" = [
"wl-paste --type text --watch cliphist store" "wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store" "wl-paste --type image --watch cliphist store"
"uwsm app -- kdeconnect-indicator" "uwsm app -- ${userConfig.statusBar}"
"uwsm app -- ashell"
"swww-daemon" "swww-daemon"
"openrgb -c $openrgb_color" "openrgb -c $openrgb_color"
]; ];

View File

@@ -22,7 +22,7 @@
identity = true; identity = true;
} }
{ {
time = "21:00"; time = "21:30";
identity = false; identity = false;
temperature = 4500; temperature = 4500;
gamma = 0.8; gamma = 0.8;