summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configuration.nix6
-rw-r--r--flake.lock103
-rw-r--r--home.nix11
-rw-r--r--hyprland/binds.nix19
-rw-r--r--hyprland/hyprland.nix6
-rw-r--r--librewolf.nix28
-rw-r--r--tmux.nix64
-rw-r--r--waybar.nix1
8 files changed, 161 insertions, 77 deletions
diff --git a/configuration.nix b/configuration.nix
index b8e28a5..d619f04 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -45,7 +45,9 @@
layout = "us";
variant = "";
};
-
+ services.gnome.gnome-keyring.enable = true;
+ environment.variables.XDG_RUNTIME_DIR = "/run/user/$UID";
+ security.polkit.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.andrew = {
isNormalUser = true;
@@ -79,6 +81,7 @@
kitty
libnotify
bibata-cursors
+ libsecret
];
programs.steam = {
enable = true;
@@ -103,6 +106,7 @@
user = "greeter";
};
};
+ security.pam.services.greetd.enableGnomeKeyring = true;
programs.regreet.enable = true;
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
diff --git a/flake.lock b/flake.lock
index b3aa9e1..0e34c66 100644
--- a/flake.lock
+++ b/flake.lock
@@ -5,11 +5,11 @@
"fromYaml": "fromYaml"
},
"locked": {
- "lastModified": 1746562888,
- "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
+ "lastModified": 1755819240,
+ "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
- "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
+ "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
@@ -21,16 +21,17 @@
"base16-fish": {
"flake": false,
"locked": {
- "lastModified": 1622559957,
- "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
+ "lastModified": 1754405784,
+ "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
- "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
+ "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
+ "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
@@ -85,11 +86,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
- "lastModified": 1748383148,
- "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
+ "lastModified": 1758112371,
+ "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
- "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
+ "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
"type": "github"
},
"original": {
@@ -159,11 +160,11 @@
]
},
"locked": {
- "lastModified": 1754487366,
- "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
+ "lastModified": 1759362264,
+ "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
+ "rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
"type": "github"
},
"original": {
@@ -219,11 +220,11 @@
]
},
"locked": {
- "lastModified": 1751413152,
- "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
+ "lastModified": 1756770412,
+ "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
+ "rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
@@ -299,11 +300,11 @@
]
},
"locked": {
- "lastModified": 1756496801,
- "narHash": "sha256-IYIsnPy+cJxe8RbDHBrCtfJY0ry2bG2H7WvMcewiGS8=",
+ "lastModified": 1761511433,
+ "narHash": "sha256-pNA2GEdH3J+2mSHKRdPpXztQXAGnk+x1yHkqlaF7y6A=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "77a71380c38fb2a440b4b5881bbc839f6230e1cb",
+ "rev": "f2f1076c1f789595c2a2b18b76466fbd691025dd",
"type": "github"
},
"original": {
@@ -335,11 +336,11 @@
},
"mnw": {
"locked": {
- "lastModified": 1748710831,
- "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=",
+ "lastModified": 1758834834,
+ "narHash": "sha256-Y7IvY4F8vajZyp3WGf+KaiIVwondEkMFkt92Cr9NZmg=",
"owner": "Gerg-L",
"repo": "mnw",
- "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d",
+ "rev": "cfbc7d1cc832e318d0863a5fc91d940a96034001",
"type": "github"
},
"original": {
@@ -376,11 +377,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1756542300,
- "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
+ "lastModified": 1761373498,
+ "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
+ "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
"type": "github"
},
"original": {
@@ -404,11 +405,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1756542300,
- "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
+ "lastModified": 1761373498,
+ "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
+ "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
"type": "github"
},
"original": {
@@ -420,11 +421,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1755049066,
- "narHash": "sha256-ANrc15FSoOAdNbfKHxqEJjZLftIwIsenJGRb/04K41s=",
+ "lastModified": 1759386674,
+ "narHash": "sha256-wg1Lz/1FC5Q13R+mM5a2oTV9TA9L/CHHTm3/PiLayfA=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "e45f8f193029378d0aaee5431ba098dc80054e9a",
+ "rev": "625ad6366178f03acd79f9e3822606dd7985b657",
"type": "github"
},
"original": {
@@ -456,11 +457,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
- "lastModified": 1756685388,
- "narHash": "sha256-aEt7Ke31q7VCuIAQodZ3P+onifaZ3QHCSP9qXLF3bLA=",
+ "lastModified": 1761511178,
+ "narHash": "sha256-ovwKkvzZcbx/lcX9N1c5b29RHTRr4B5bQGBlCHwgMBc=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "fe7174935739aa55472ab68b9073d46342828790",
+ "rev": "2138a40d14e8ee0e9918fa7060d05c08efc4d23c",
"type": "github"
},
"original": {
@@ -481,11 +482,11 @@
]
},
"locked": {
- "lastModified": 1751906969,
- "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=",
+ "lastModified": 1758998580,
+ "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25",
+ "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
"type": "github"
},
"original": {
@@ -503,11 +504,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1755463179,
- "narHash": "sha256-5Ggb1Mhf7ZlRgGi2puCa2PvWs6KbMnWBlW6KW7Vf79Y=",
+ "lastModified": 1761486540,
+ "narHash": "sha256-O0VNqERaZ1H+4P3XwHNd8wVCqUcGtMPJT1z4cJodRFc=",
"owner": "notashelf",
"repo": "nvf",
- "rev": "03833118267ad32226b014b360692bdce9d6e082",
+ "rev": "4b904de36157035fa3dddf0312a4242e5d0d9bd0",
"type": "github"
},
"original": {
@@ -594,11 +595,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1755997543,
- "narHash": "sha256-/fejmCQ7AWa655YxyPxRDbhdU7c5+wYsFSjmEMXoBCM=",
+ "lastModified": 1761028816,
+ "narHash": "sha256-s1XiIeJHpODVWfzsPaK9e21iz1dQSCU3H4/1OxOsyps=",
"owner": "nix-community",
"repo": "stylix",
- "rev": "f47c0edcf71e802378b1b7725fa57bb44fe85ee8",
+ "rev": "b81dc0a385443099e7d231fe6275189e32c3b760",
"type": "github"
},
"original": {
@@ -688,11 +689,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
- "lastModified": 1750770351,
- "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
+ "lastModified": 1757716333,
+ "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
"owner": "tinted-theming",
"repo": "schemes",
- "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
+ "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
"type": "github"
},
"original": {
@@ -704,11 +705,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
- "lastModified": 1751159871,
- "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
+ "lastModified": 1757811970,
+ "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
- "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
+ "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
"type": "github"
},
"original": {
@@ -720,11 +721,11 @@
"tinted-zed": {
"flake": false,
"locked": {
- "lastModified": 1751158968,
- "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
+ "lastModified": 1757811247,
+ "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
"owner": "tinted-theming",
"repo": "base16-zed",
- "rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
+ "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
"type": "github"
},
"original": {
diff --git a/home.nix b/home.nix
index e052586..ab33c12 100644
--- a/home.nix
+++ b/home.nix
@@ -56,6 +56,7 @@
catppuccin-gtk
inter
prismlauncher
+ btop
nixfmt-rfc-style
p7zip
github-desktop
@@ -77,10 +78,13 @@
slurp
swappy
+ vlc
+
skullNeovim.neovim
protonvpn-cli
protonvpn-gui
+ qbittorrent
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
@@ -181,13 +185,14 @@
xdg.portal = {
enable = true;
- extraPortals = [pkgs.xdg-desktop-portal-hyprland];
+ extraPortals = [pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk];
+ config.common.default = ["hyprland" "gtk"];
+ xdgOpenUsePortal = true;
};
-
services.gnome-keyring = {
enable = true;
};
-
+ services.network-manager-applet.enable = true;
services.hyprpolkitagent.enable = true;
home.pointerCursor = {
hyprcursor.enable = true;
diff --git a/hyprland/binds.nix b/hyprland/binds.nix
index c168415..c354fe1 100644
--- a/hyprland/binds.nix
+++ b/hyprland/binds.nix
@@ -32,12 +32,12 @@ in {
"$mod, Q, killactive,"
"$mod, F, fullscreen,"
#"$mod, G, togglegroup,"
- "$mod SHIFT, N, changegroupactive, f"
- "$mod SHIFT, P, changegroupactive, b"
- "$mod, R, togglesplit,"
+ # "$mod SHIFT, N, changegroupactive, f"
+ # "$mod SHIFT, P, changegroupactive, b"
+ #"$mod, R, togglesplit,"
"$mod, T, togglefloating,"
- "$mod, P, pseudo,"
- "$mod ALT, ,resizeactive,"
+ #"$mod, P, pseudo,"
+ #"$mod ALT, ,resizeactive,"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
@@ -57,6 +57,15 @@ in {
"$mod SHIFT, k, movewindow, u"
"$mod SHIFT, j, movewindow, d"
+ "$mod CTRL, left, resizeactive, -10 0"
+ "$mod CTRL, down, resizeactive, 0 10"
+ "$mod CTRL, up, resizeactive, 0 -10"
+ "$mod CTRL, right, resizeactive, 10 0"
+ "$mod CTRL, h, resizeactive, -10 0"
+ "$mod CTRL, j, resizeactive, 0 10"
+ "$mod CTRL, k, resizeactive, 0 -10"
+ "$mod CTRL, l, resizeactive, 10 0"
+
"$mod, D, exec, uwsm app -- ghostty"
"$mod, b, exec, librewolf"
"$mod, space, exec, pkill rofi || rofi -show drun"
diff --git a/hyprland/hyprland.nix b/hyprland/hyprland.nix
index 9a84485..dd098e7 100644
--- a/hyprland/hyprland.nix
+++ b/hyprland/hyprland.nix
@@ -42,9 +42,12 @@
"f[1], gapsout:0, gapsin:0"
];
exec-once = [
+ "gnome-keyring-daemon --replace --start --components=pkcs11,secrets,ssh"
"xrandr --output DP-3 --primary"
"uwsm app -- waybar"
- "[workspace 1 silent] uwsm app -- ghostty"
+ "nm-applet --indicator"
+ "/run/current-system/sw/libexec/polkit-gnome-authentication-agent-1"
+ "[workspace 1 silent] uwsm app -- ghostty -e tmux attach -t dev || tmux new -s dev -c ~/dev"
"[workspace 2 silent] uwsm app -- librewolf"
#"[workspace 3 silent] uwsm app -- ghostty -e fish -c rmpc"
"[workspace 3 silent] uwsm app -- discord"
@@ -55,6 +58,7 @@
windowrule = [
"workspace 3 silent, class:(discord)"
"workspace 6 silent, class:(steam)"
+ "workspace 4 silent, class:(org.keepassxc.KeePassXC)"
"bordersize 0, floating:0, onworkspace:w[tv1]"
"rounding 0, floating:0, onworkspace:w[tv1]"
diff --git a/librewolf.nix b/librewolf.nix
index e76d88c..386ba88 100644
--- a/librewolf.nix
+++ b/librewolf.nix
@@ -27,6 +27,7 @@
ublock-origin
vimium-c
keepassxc-browser
+ containerise
];
settings = {
"uBlock0@raymondhill.net".settings = {
@@ -43,6 +44,33 @@
};
};
};
+ containers = {
+ Personal = {
+ color = "blue";
+ icon = "fingerprint";
+ id = 1;
+ };
+ Shopping = {
+ color = "turquoise";
+ icon = "cart";
+ id = 2;
+ };
+ Banking = {
+ color = "green";
+ icon = "dollar";
+ id = 3;
+ };
+ Youtube = {
+ color = "red";
+ icon = "fruit";
+ id = 4;
+ };
+ School = {
+ color = "pink";
+ icon = "briefcase";
+ id = 5;
+ };
+ };
};
};
}
diff --git a/tmux.nix b/tmux.nix
index ce76729..774f5bf 100644
--- a/tmux.nix
+++ b/tmux.nix
@@ -29,25 +29,57 @@
}
];
extraConfig = ''
- # Basic settings for usability
- set -g mouse on
- set -g base-index 1
- set -g pane-base-index 1
- set -g status-style bg=black,fg=cyan
- set -g prefix C-a
- unbind C-b
- bind C-a send-prefix
+ # Basic settings for usability
+ set -g mouse on
+ set -g base-index 1
+ set -g pane-base-index 1
+ set -g status-style bg=black,fg=cyan
+ set -g history-limit 10000
+ set -g prefix C-a
+ unbind C-b
+ bind C-a send-prefix
- # bind-key -r d new-session -s dev
- # bind-key -r m new-session -s music
- # bind-key -r n new-session -s nixos
+ bind | split-window -h
+ bind - split-window -v
- # Fish-friendly clipboard integration
- set -g set-clipboard on
- bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
- # Session initialization script
- set -g @tmux-resurrect-restore-script '${config.home.homeDirectory}/.config/tmux/setup-sessions.sh'
+ # Pane navigation (vim-style)
+ bind h select-pane -L
+ bind j select-pane -D
+ bind k select-pane -U
+ bind l select-pane -R
+
+ # Pane resizing with Shift + vim keys
+ bind -r H resize-pane -L 5
+ bind -r J resize-pane -D 5
+ bind -r K resize-pane -U 5
+ bind -r L resize-pane -R 5
+ bind s choose-session
+ bind w choose-window
+ # Auto-create sessions if they don't exist
+ if-shell "tmux has-session -t dev 2>/dev/null" "" "new-session -ds dev -c ~/dev 'fish'"
+ if-shell "tmux has-session -t music 2>/dev/null" "" "new-session -ds music 'rmpc'"
+ if-shell "tmux has-session -t nixos 2>/dev/null" "" "new-session -ds nixos -c ~/.dotfiles/nixos 'nvim .'"
+
+ # Quick binds for session switching
+ bind d switch-client -t dev
+ bind m switch-client -t music
+ bind n switch-client -t nixos
+ bind -n C-1 select-window -t 1
+ bind -n C-2 select-window -t 2
+ bind -n C-3 select-window -t 3
+ bind -n C-4 select-window -t 4
+ bind -n C-5 select-window -t 5
+ bind -n C-6 select-window -t 6
+ bind -n C-7 select-window -t 7
+ bind -n C-8 select-window -t 8
+ bind -n C-9 select-window -t 9
+ # Fish-friendly clipboard integration
+ set -g set-clipboard on
+ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
+
+ # Session initialization script
+ set -g @tmux-resurrect-restore-script '${config.home.homeDirectory}/.config/tmux/setup-sessions.sh'
'';
};
diff --git a/waybar.nix b/waybar.nix
index 1a44cfc..a12fe2a 100644
--- a/waybar.nix
+++ b/waybar.nix
@@ -21,6 +21,7 @@ in {
settings = [
{
+ gtk-layer-shell = false;
output = ["DP-3"];
#height = 24; # Waybar height
spacing = 4; # Gaps between modules