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
userConfig = {
username = "szymon"; username = "szymon";
# for git # for git
email = "szymon_jozef@proton.me"; email = "szymon_jozef@proton.me";
full_name = "Szymon P"; 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,11 +3,13 @@
{ {
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 # no dum greeting
set fish_greeting "" set fish_greeting ""
@@ -21,7 +23,8 @@
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 config_dir "$HOME/.config/home-manager"
set -l file set -l file
@@ -59,19 +62,23 @@
}; };
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

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;