mirror of
https://github.com/harryssecret/homelab-nix.git
synced 2025-08-08 22:50:19 +02:00
Compare commits
6 commits
7cd9906bc1
...
5da82a8e80
Author | SHA1 | Date | |
---|---|---|---|
5da82a8e80 | |||
1de2a5aa0a | |||
7e62493d21 | |||
5e1fbf2fe3 | |||
88d798782c | |||
d9d7ee2ac3 |
18 changed files with 349 additions and 146 deletions
|
@ -6,6 +6,8 @@
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
xdg-utils
|
xdg-utils
|
||||||
sway-contrib.grimshot
|
sway-contrib.grimshot
|
||||||
|
swaylock
|
||||||
|
swaynotificationcenter
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
106
flake.lock
generated
106
flake.lock
generated
|
@ -32,11 +32,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731092955,
|
"lastModified": 1735301051,
|
||||||
"narHash": "sha256-L1hLXf4IDZ0KoXbFiSNNZJ7IrReEr/J+CLt6Rl4Ea3M=",
|
"narHash": "sha256-jU88Q9tP4vuvWYGQcmOdFwI9e2uMPVYJHbXdiklIH9o=",
|
||||||
"owner": "anyrun-org",
|
"owner": "anyrun-org",
|
||||||
"repo": "anyrun",
|
"repo": "anyrun",
|
||||||
"rev": "d2017f224b2bfd7e33573c7070e7c3e2960c7dcc",
|
"rev": "06017e753c8886d5296768dca80745ee09402a2d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -128,11 +128,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733312601,
|
"lastModified": 1736143030,
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -150,11 +150,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733312601,
|
"lastModified": 1736143030,
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -185,18 +185,14 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-nightly-overlay",
|
"neovim-nightly-overlay",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
|
||||||
"nixpkgs-stable": [
|
|
||||||
"neovim-nightly-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734797603,
|
"lastModified": 1737465171,
|
||||||
"narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=",
|
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498",
|
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -236,11 +232,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733333617,
|
"lastModified": 1736917206,
|
||||||
"narHash": "sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w=",
|
"narHash": "sha256-JTBWmyGf8K1Rwb+gviHIUzRJk/sITtT+72HXFkTZUjo=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "hercules-ci-effects",
|
"repo": "hercules-ci-effects",
|
||||||
"rev": "56f8ea8d502c87cf62444bec4ee04512e8ea24ea",
|
"rev": "afd0a42e8c61ebb56899315ee4084a8b2e4ff425",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -256,11 +252,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735344290,
|
"lastModified": 1736373539,
|
||||||
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
|
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
|
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -281,11 +277,11 @@
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734999862,
|
"lastModified": 1737701591,
|
||||||
"narHash": "sha256-CJ3dXoCQzbSR/b8kbswlf/JIGKIN/6c9ywRw2rQAIYY=",
|
"narHash": "sha256-S71nENrb8kBrEvihDD+1mzn5sRrRr1sAaNMkjWDx1h0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "neovim-nightly-overlay",
|
"repo": "neovim-nightly-overlay",
|
||||||
"rev": "0d0beafd94c34915fb951b31e165be5cf1cf3a7c",
|
"rev": "c9248eec123e70ef1132bbedeae22e2af7011095",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -297,11 +293,11 @@
|
||||||
"neovim-src": {
|
"neovim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734989976,
|
"lastModified": 1737675744,
|
||||||
"narHash": "sha256-DVlI7ua+VOkqC70WpSbJO+FjQyBEarGZnKoql7I7Unk=",
|
"narHash": "sha256-2Q4SNciK6DHC5WknFSbk3aYjorayf9y4uz3tdtl/T1M=",
|
||||||
"owner": "neovim",
|
"owner": "neovim",
|
||||||
"repo": "neovim",
|
"repo": "neovim",
|
||||||
"rev": "c51bf5a6b24928ac04d0bb129b1b424d4c78f28d",
|
"rev": "8bc28978b632362ae658f8d4a6327e07a8b371b2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -317,11 +313,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733570843,
|
"lastModified": 1737504076,
|
||||||
"narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=",
|
"narHash": "sha256-/B4XJnzYU/6K1ZZOBIgsa3K4pqDJrnC2579c44c+4rI=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "a35b08d09efda83625bef267eb24347b446c80b8",
|
"rev": "65cc1fa8e36ceff067daf6cfb142331f02f524d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -364,11 +360,11 @@
|
||||||
},
|
},
|
||||||
"nixlib": {
|
"nixlib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734829460,
|
"lastModified": 1736643958,
|
||||||
"narHash": "sha256-dPhc+f2wkmhMqMIfq+hColJdysgVxKP9ilZ5bR0NRZI=",
|
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "0a31e8d833173ae63e43fd9dbff1ccf09c4f778c",
|
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -385,11 +381,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734915500,
|
"lastModified": 1737057290,
|
||||||
"narHash": "sha256-A7CTIQ8SW0hfbhKlwK+vSsu4pD+Oaelw3v6goX6go+U=",
|
"narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4",
|
"rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -400,11 +396,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734856068,
|
"lastModified": 1737557748,
|
||||||
"narHash": "sha256-Q+CB1ajsJg4Z9HGHTBAGY1q18KpnnkmF/eCTLUY6FQ0=",
|
"narHash": "sha256-BaMuhctP1x00+8cBE2cJveJQb70/tWHI50MHj/ZrtOY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "93ff48c9be84a76319dac293733df09bbbe3f25c",
|
"rev": "606996d74f6e2a12635d41c1bf58bfc7ea3bb5ec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -416,11 +412,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgsSmall": {
|
"nixpkgsSmall": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735640024,
|
"lastModified": 1737672001,
|
||||||
"narHash": "sha256-4I5qiwYmZFygUC3numWaMhStwRYX+Lk0ISddJIoHEwE=",
|
"narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bc130b5a632d110d76f1584213eab6e029fd7802",
|
"rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -432,11 +428,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgsUnstable": {
|
"nixpkgsUnstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735471104,
|
"lastModified": 1737632463,
|
||||||
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
|
"narHash": "sha256-38J9QfeGSej341ouwzqf77WIHAScihAKCt8PQJ+NH28=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
|
"rev": "0aa475546ed21629c4f5bbf90e38c846a99ec9e9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -448,11 +444,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735531152,
|
"lastModified": 1737672001,
|
||||||
"narHash": "sha256-As8I+ebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q=",
|
"narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3ffbbdbac0566a0977da3d2657b89cbcfe9a173b",
|
"rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -516,11 +512,11 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734546875,
|
"lastModified": 1737411508,
|
||||||
"narHash": "sha256-6OvJbqQ6qPpNw3CA+W8Myo5aaLhIJY/nNFDk3zMXLfM=",
|
"narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "ed091321f4dd88afc28b5b4456e0a15bd8374b4d",
|
"rev": "015d461c16678fc02a2f405eb453abb509d4e1d4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -552,11 +548,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734982074,
|
"lastModified": 1737483750,
|
||||||
"narHash": "sha256-N7M37KP7cHWoXicuE536GrVvU8nMDT/gpI1kja2hkdg=",
|
"narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "e41e948cf097cbf96ba4dff47a30ea6891af9f33",
|
"rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -56,6 +56,9 @@
|
||||||
inherit secrets;
|
inherit secrets;
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
system = "x86_64-linux";
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
|
@ -158,5 +161,8 @@
|
||||||
|
|
||||||
# Expose the package set, including overlays, for convenience.
|
# Expose the package set, including overlays, for convenience.
|
||||||
darwinPackages = self.darwinConfigurations."iMac-de-Eddie".pkgs;
|
darwinPackages = self.darwinConfigurations."iMac-de-Eddie".pkgs;
|
||||||
|
|
||||||
|
packages.miku-cursor-linux = pkgs.callPackage ./packages/miku-cursor.nix {};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,3 +3,6 @@ alias gocode="cd ~/Documents/Code/"
|
||||||
kittysay meow
|
kittysay meow
|
||||||
eval "$(zoxide init bash)"
|
eval "$(zoxide init bash)"
|
||||||
eval "$(direnv hook bash)"
|
eval "$(direnv hook bash)"
|
||||||
|
|
||||||
|
# nnn configuration
|
||||||
|
NNN_PLUG='L:nmount'
|
||||||
|
|
|
@ -85,7 +85,7 @@ blink=yes
|
||||||
|
|
||||||
[colors]
|
[colors]
|
||||||
# alpha=1.0
|
# alpha=1.0
|
||||||
# background=242424
|
background=20111b
|
||||||
# foreground=ffffff
|
# foreground=ffffff
|
||||||
# flash=7f7f00
|
# flash=7f7f00
|
||||||
# flash-alpha=0.5
|
# flash-alpha=0.5
|
||||||
|
|
88
home-manager/dotfiles/nnn/plugins/nmount
Normal file
88
home-manager/dotfiles/nnn/plugins/nmount
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# Description: Toggle mount status of a device using pmount
|
||||||
|
# If the device is not mounted, it will be mounted.
|
||||||
|
# If the device is mounted, it will be unmounted and powered down.
|
||||||
|
#
|
||||||
|
# Dependencies: lsblk, pmount (optional), udisks2
|
||||||
|
#
|
||||||
|
# Usage: Runs `lsblk` on 'l', exits on 'Return`.
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - The script uses Linux-specific lsblk to list block devices. Alternatives:
|
||||||
|
# macOS: "diskutil list"
|
||||||
|
# BSD: "geom disk list"
|
||||||
|
# - The script uses udisksctl (from udisks2) to power down devices. This is also Linux-specific.
|
||||||
|
# Users on non-Linux platforms can comment it and use an alternative to power-down disks.
|
||||||
|
#
|
||||||
|
# Shell: POSIX compliant
|
||||||
|
# Author: Arun Prakash Jana
|
||||||
|
|
||||||
|
prompt="device name [e.g. sdXn] ('l'ist, 'q'uit): "
|
||||||
|
|
||||||
|
lsblk
|
||||||
|
|
||||||
|
printf "\nEnsure you aren't still in the mounted device.\n"
|
||||||
|
printf "%s" "$prompt"
|
||||||
|
read -r dev
|
||||||
|
|
||||||
|
while [ -n "$dev" ]; do
|
||||||
|
if [ "$dev" = "l" ]; then
|
||||||
|
lsblk
|
||||||
|
elif [ "$dev" = "q" ]; then
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
# LUKS volumes mounted with udisksctl appear differently than with pmount
|
||||||
|
if grep -qs "$dev " /proc/mounts || [ -n "$(lsblk -n "/dev/$dev" -o MOUNTPOINT)" ]; then
|
||||||
|
sync "$(lsblk -n "/dev/$dev" -o MOUNTPOINT | sed "/^$/d")"
|
||||||
|
if type pumount >/dev/null 2>&1; then
|
||||||
|
pumount "/dev/$dev"
|
||||||
|
exit_code="$?"
|
||||||
|
else
|
||||||
|
# Unlike pmount, udisksctl does not transparently handle LUKS volumes
|
||||||
|
# We need to manually get the unlocked device, unmount it, and then lock the volume
|
||||||
|
if lsblk -n "/dev/$dev" -o FSTYPE | grep "crypto_LUKS" >/dev/null; then
|
||||||
|
dev_map="$(udisksctl info -b /dev/"$dev" | grep "CleartextDevice" | grep -o "dm_2d[[:digit:]]*" | sed "s/_2d/-/")"
|
||||||
|
udisksctl unmount -b "/dev/$dev_map" --no-user-interaction >/dev/null
|
||||||
|
exit_code="$?"
|
||||||
|
udisksctl lock -b "/dev/$dev" --no-user-interaction >/dev/null
|
||||||
|
else
|
||||||
|
udisksctl unmount -b "/dev/$dev" --no-user-interaction >/dev/null
|
||||||
|
exit_code="$?"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ $exit_code -eq 0 ]; then
|
||||||
|
echo "/dev/$dev unmounted."
|
||||||
|
if udisksctl power-off -b "/dev/$dev" --no-user-interaction; then
|
||||||
|
echo "/dev/$dev ejected."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ -b "/dev/$dev" ]; then
|
||||||
|
if type pmount >/dev/null 2>&1; then
|
||||||
|
pmount "/dev/$dev"
|
||||||
|
exit_code="$?"
|
||||||
|
else
|
||||||
|
# Unlike pmount, udisksctl does not transparently handle LUKS volumes
|
||||||
|
# We need to manually get the unlocked device and mount that instead of the volume itself
|
||||||
|
if [ "$(lsblk "/dev/$dev" -n -o FSTYPE)" = "crypto_LUKS" ]; then
|
||||||
|
dev_map=$(udisksctl unlock -b "/dev/$dev" --no-user-interaction | grep -o "dm-[[:digit:]]*")
|
||||||
|
udisksctl mount -b "/dev/$dev_map" --no-user-interaction >/dev/null
|
||||||
|
exit_code="$?"
|
||||||
|
else
|
||||||
|
udisksctl mount -b "/dev/$dev" --no-user-interaction >/dev/null
|
||||||
|
exit_code="$?"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ $exit_code -eq 0 ]; then
|
||||||
|
sleep 1
|
||||||
|
echo "/dev/$dev mounted to $(lsblk -n "/dev/$dev" -o MOUNTPOINT | sed "/^$/d")."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "/dev/$dev does not exist or is not a block device."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
printf "%s" "$prompt"
|
||||||
|
read -r dev
|
||||||
|
done
|
|
@ -73,78 +73,78 @@ input * {
|
||||||
#
|
#
|
||||||
# Basics:
|
# Basics:
|
||||||
#
|
#
|
||||||
# Start a terminal
|
# Start a terminal
|
||||||
bindsym $mod+Return exec $term
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
# Kill focused window
|
# Kill focused window
|
||||||
bindsym $mod+Shift+q kill
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
# Start your launcher
|
# Start your launcher
|
||||||
bindsym $mod+d exec $menu
|
bindsym $mod+d exec $menu
|
||||||
|
|
||||||
# Drag floating windows by holding down $mod and left mouse button.
|
# Drag floating windows by holding down $mod and left mouse button.
|
||||||
# Resize them with right mouse button + $mod.
|
# Resize them with right mouse button + $mod.
|
||||||
# Despite the name, also works for non-floating windows.
|
# Despite the name, also works for non-floating windows.
|
||||||
# Change normal to inverse to use left mouse button for resizing and right
|
# Change normal to inverse to use left mouse button for resizing and right
|
||||||
# mouse button for dragging.
|
# mouse button for dragging.
|
||||||
floating_modifier $mod normal
|
floating_modifier $mod normal
|
||||||
|
|
||||||
# Reload the configuration file
|
# Reload the configuration file
|
||||||
bindsym $mod+Shift+c reload
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
# Exit sway (logs you out of your Wayland session)
|
# Exit sway (logs you out of your Wayland session)
|
||||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||||
#
|
#
|
||||||
# Moving around:
|
# Moving around:
|
||||||
#
|
#
|
||||||
# Move your focus around
|
# Move your focus around
|
||||||
bindsym $mod+$left focus left
|
bindsym $mod+$left focus left
|
||||||
bindsym $mod+$down focus down
|
bindsym $mod+$down focus down
|
||||||
bindsym $mod+$up focus up
|
bindsym $mod+$up focus up
|
||||||
bindsym $mod+$right focus right
|
bindsym $mod+$right focus right
|
||||||
# Or use $mod+[up|down|left|right]
|
# Or use $mod+[up|down|left|right]
|
||||||
bindsym $mod+Left focus left
|
bindsym $mod+Left focus left
|
||||||
bindsym $mod+Down focus down
|
bindsym $mod+Down focus down
|
||||||
bindsym $mod+Up focus up
|
bindsym $mod+Up focus up
|
||||||
bindsym $mod+Right focus right
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
# Move the focused window with the same, but add Shift
|
# Move the focused window with the same, but add Shift
|
||||||
bindsym $mod+Shift+$left move left
|
bindsym $mod+Shift+$left move left
|
||||||
bindsym $mod+Shift+$down move down
|
bindsym $mod+Shift+$down move down
|
||||||
bindsym $mod+Shift+$up move up
|
bindsym $mod+Shift+$up move up
|
||||||
bindsym $mod+Shift+$right move right
|
bindsym $mod+Shift+$right move right
|
||||||
# Ditto, with arrow keys
|
# Ditto, with arrow keys
|
||||||
bindsym $mod+Shift+Left move left
|
bindsym $mod+Shift+Left move left
|
||||||
bindsym $mod+Shift+Down move down
|
bindsym $mod+Shift+Down move down
|
||||||
bindsym $mod+Shift+Up move up
|
bindsym $mod+Shift+Up move up
|
||||||
bindsym $mod+Shift+Right move right
|
bindsym $mod+Shift+Right move right
|
||||||
#
|
#
|
||||||
# Workspaces:
|
# Workspaces:
|
||||||
#
|
#
|
||||||
# Switch to workspace
|
# Switch to workspace
|
||||||
bindsym $mod+ampersand workspace 1
|
bindsym $mod+ampersand workspace 1
|
||||||
bindsym $mod+eacute workspace 2
|
bindsym $mod+eacute workspace 2
|
||||||
bindsym $mod+quotedbl workspace 3
|
bindsym $mod+quotedbl workspace 3
|
||||||
bindsym $mod+apostrophe workspace 4
|
bindsym $mod+apostrophe workspace 4
|
||||||
bindsym $mod+parenleft workspace 5
|
bindsym $mod+parenleft workspace 5
|
||||||
bindsym $mod+minus workspace 6
|
bindsym $mod+minus workspace 6
|
||||||
bindsym $mod+egrave workspace 7
|
bindsym $mod+egrave workspace 7
|
||||||
bindsym $mod+underscore workspace 8
|
bindsym $mod+underscore workspace 8
|
||||||
bindsym $mod+ccedilla workspace 9
|
bindsym $mod+ccedilla workspace 9
|
||||||
bindsym $mod+agrave workspace 10
|
bindsym $mod+agrave workspace 10
|
||||||
# Move focused container to workspace
|
# Move focused container to workspace
|
||||||
bindsym $mod+1 move container to workspace number 1
|
bindsym $mod+1 move container to workspace number 1
|
||||||
bindsym $mod+2 move container to workspace number 2
|
bindsym $mod+2 move container to workspace number 2
|
||||||
bindsym $mod+3 move container to workspace number 3
|
bindsym $mod+3 move container to workspace number 3
|
||||||
bindsym $mod+4 move container to workspace number 4
|
bindsym $mod+4 move container to workspace number 4
|
||||||
bindsym $mod+5 move container to workspace number 5
|
bindsym $mod+5 move container to workspace number 5
|
||||||
bindsym $mod+6 move container to workspace number 6
|
bindsym $mod+6 move container to workspace number 6
|
||||||
bindsym $mod+7 move container to workspace number 7
|
bindsym $mod+7 move container to workspace number 7
|
||||||
bindsym $mod+8 move container to workspace number 8
|
bindsym $mod+8 move container to workspace number 8
|
||||||
bindsym $mod+9 move container to workspace number 9
|
bindsym $mod+9 move container to workspace number 9
|
||||||
bindsym $mod+0 move container to workspace number 10
|
bindsym $mod+0 move container to workspace number 10
|
||||||
# Note: workspaces can have any name you want, not just numbers.
|
# Note: workspaces can have any name you want, not just numbers.
|
||||||
# We just use 1-10 as the default.
|
# We just use 1-10 as the default.
|
||||||
#
|
#
|
||||||
# Layout stuff:
|
# Layout stuff:
|
||||||
#
|
#
|
||||||
|
@ -173,18 +173,18 @@ input * {
|
||||||
#
|
#
|
||||||
# Scratchpad:
|
# Scratchpad:
|
||||||
#
|
#
|
||||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||||
# You can send windows there and get them back later.
|
# You can send windows there and get them back later.
|
||||||
|
|
||||||
# Move the currently focused window to the scratchpad
|
# Move the currently focused window to the scratchpad
|
||||||
#bindsym $mod+Shift+minus move scratchpad
|
#bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||||
# If there are multiple scratchpad windows, this command cycles through them.
|
# If there are multiple scratchpad windows, this command cycles through them.
|
||||||
#bindsym $mod+minus scratchpad show
|
#bindsym $mod+minus scratchpad show
|
||||||
# useful shortcuts
|
# useful shortcuts
|
||||||
bindsym Print exec ~/.config/sway/screen_and_copy.sh area
|
bindsym Print exec ~/.config/sway/scripts/screen_and_copy.sh area
|
||||||
bindsym Ctrl+Print exec ~/.config/sway/screen_and_copy.sh output
|
bindsym Ctrl+Print exec ~/.config/sway/scripts/screen_and_copy.sh output
|
||||||
bindsym --locked XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
bindsym --locked XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
bindsym --locked XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -l 1.2
|
bindsym --locked XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -l 1.2
|
||||||
bindsym --locked XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ -l 1.2
|
bindsym --locked XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ -l 1.2
|
||||||
|
@ -224,5 +224,18 @@ bar {
|
||||||
swaybar_command waybar
|
swaybar_command waybar
|
||||||
}
|
}
|
||||||
|
|
||||||
|
seat seat0 xcursor_theme "miku-cursor-linux" 36
|
||||||
|
|
||||||
include /etc/sway/config.d/*
|
include /etc/sway/config.d/*
|
||||||
|
|
||||||
|
# enable numlock on start
|
||||||
|
input type:keyboard xkb_capslock enabled
|
||||||
|
input type:keyboard xkb_numlock enabled
|
||||||
|
|
||||||
|
# floating bitwarden
|
||||||
|
for_window [app_id="^firefox$" title="^Extension: \(Bitwarden - Free Password Manager\) - Bitwarden — Mozilla Firefox$"] floating enable
|
||||||
|
|
||||||
|
# notification daemon
|
||||||
|
exec swaync
|
||||||
|
|
||||||
|
bindsym $mod+Shift+n exec swaync-client -t -sw
|
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 420 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
@ -1,16 +1,23 @@
|
||||||
{
|
{
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||||
"modules-center": [ ],
|
"modules-center": [],
|
||||||
"modules-right": ["mpris", "wireplumber","cpu", "bluetooth", "network", "clock", "privacy"],
|
"modules-right": [
|
||||||
|
"wireplumber",
|
||||||
|
"cpu",
|
||||||
|
"bluetooth",
|
||||||
|
"network",
|
||||||
|
"clock",
|
||||||
|
"privacy"
|
||||||
|
],
|
||||||
"clock": {
|
"clock": {
|
||||||
"format-alt": "{:%a, %d. %b %H:%M}"
|
"format-alt": "{:%a, %d. %b %H:%M}"
|
||||||
},
|
},
|
||||||
"wireplumber": {
|
"wireplumber": {
|
||||||
"format": "{volume}% ",
|
"format": "{volume}% ",
|
||||||
"format-muted": "",
|
"format-muted": "",
|
||||||
"max-volume": 120,
|
"max-volume": 120,
|
||||||
"scroll-step": 0.2
|
"scroll-step": 0.2
|
||||||
},
|
},
|
||||||
"privacy": {
|
"privacy": {
|
||||||
"icon-spacing": 4,
|
"icon-spacing": 4,
|
||||||
|
@ -40,19 +47,39 @@
|
||||||
"network": {
|
"network": {
|
||||||
"interface": "wlp3s0",
|
"interface": "wlp3s0",
|
||||||
"format": "{ifname}",
|
"format": "{ifname}",
|
||||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
"format-wifi": " ",
|
||||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
"format-ethernet": "",
|
||||||
"format-disconnected": "", //An empty format will hide the module.
|
"format-disconnected": "", //An empty format will hide the module.
|
||||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
"tooltip-format-ethernet": "{ifname} ",
|
"tooltip-format-ethernet": "{ifname} ",
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
"max-length": 50
|
"max-length": 50
|
||||||
},
|
},
|
||||||
"bluetooth": {
|
"bluetooth": {
|
||||||
"format": "",
|
"format": "",
|
||||||
"format-disabled": "",
|
"format-disabled": "",
|
||||||
"format-connected": ""
|
"format-connected": ""
|
||||||
}
|
},
|
||||||
|
|
||||||
|
"custom/notification": {
|
||||||
|
"tooltip": false,
|
||||||
|
"format": "{} {icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"notification": "<span foreground='red'><sup></sup></span>",
|
||||||
|
"none": "",
|
||||||
|
"dnd-notification": "<span foreground='red'><sup></sup></span>",
|
||||||
|
"dnd-none": "",
|
||||||
|
"inhibited-notification": "<span foreground='red'><sup></sup></span>",
|
||||||
|
"inhibited-none": "",
|
||||||
|
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
|
||||||
|
"dnd-inhibited-none": ""
|
||||||
|
},
|
||||||
|
"return-type": "json",
|
||||||
|
"exec-if": "which swaync-client",
|
||||||
|
"exec": "swaync-client -swb",
|
||||||
|
"on-click": "swaync-client -t -sw",
|
||||||
|
"on-click-right": "swaync-client -d -sw",
|
||||||
|
"escape": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
:root {
|
||||||
|
--primary-color: #7b002c;
|
||||||
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
font-family: "CodeNewRoman Nerd Font";
|
font-family: "CodeNewRoman Nerd Font";
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
@ -6,24 +10,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
|
margin: 12px 24px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
border: solid 2px var(--primary-color);
|
||||||
|
min-height: 14px; /* set waybar's height to 14px */
|
||||||
|
font-size: 14px; /* set only the font size to be bigger, which in turn will adjust the height of other elements */
|
||||||
|
border-radius: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#clock, #battery, #cpu, #wireplumber, #bluetooth {
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#wireplumber,
|
||||||
|
#bluetooth {
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.focused {
|
||||||
border-bottom: solid 2px #7b002c;
|
border-bottom: solid 2px var(--primary-color);
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces {
|
#workspaces {
|
||||||
padding: 4px 0;
|
padding: 4px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
min-height: 14px; /* set waybar's height to 18px */
|
|
||||||
font-size: 14px; /* set only the font size to be bigger, which in turn will adjust the height of other elements */
|
|
||||||
}
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
"vscode"
|
"vscode"
|
||||||
];
|
];
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
@ -66,6 +67,7 @@
|
||||||
pkgs.xfce.thunar
|
pkgs.xfce.thunar
|
||||||
pkgs.gimp-with-plugins
|
pkgs.gimp-with-plugins
|
||||||
pkgs.fzf
|
pkgs.fzf
|
||||||
|
pkgs.nnn
|
||||||
pkgs.why3
|
pkgs.why3
|
||||||
pkgs.alt-ergo
|
pkgs.alt-ergo
|
||||||
pkgs.cvc4
|
pkgs.cvc4
|
||||||
|
@ -168,6 +170,13 @@
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.pointerCursor = {
|
||||||
|
name = "miku-cursor-linux";
|
||||||
|
size = 32;
|
||||||
|
gtk.enable = true;
|
||||||
|
package = pkgs.callPackage ../packages/miku-cursor.nix {};
|
||||||
|
};
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
userName = "harry123";
|
userName = "harry123";
|
||||||
userEmail = "harryh@ik.me";
|
userEmail = "harryh@ik.me";
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./wine.nix
|
./wine.nix
|
||||||
|
./qemu.nix
|
||||||
./neovim.nix
|
./neovim.nix
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./discord.nix
|
./discord.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
9
hosts/goober/features/software/qemu.nix
Normal file
9
hosts/goober/features/software/qemu.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{pkgs, config, ...}: {
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
quickemu
|
||||||
|
qemu
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
|
||||||
|
}
|
6
hosts/sisyphe/features/services/archivebox.nix
Normal file
6
hosts/sisyphe/features/services/archivebox.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{config, pkgs, ...}:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
archivebox
|
||||||
|
];
|
||||||
|
}
|
|
@ -8,5 +8,13 @@
|
||||||
description = "welcome to the silly kittens hut !! meow:3";
|
description = "welcome to the silly kittens hut !! meow:3";
|
||||||
adminEmail = "admin@hypervirtual.world";
|
adminEmail = "admin@hypervirtual.world";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**environment.etc = {
|
||||||
|
"ircd.conf" = {
|
||||||
|
text =''
|
||||||
|
'';
|
||||||
|
mode = "440";
|
||||||
|
};
|
||||||
|
};**/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
27
packages/miku-cursor.nix
Normal file
27
packages/miku-cursor.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{stdenv, fetchFromGitHub}:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "miku-cursor-linux";
|
||||||
|
version = "1.2.6";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "supermariofps";
|
||||||
|
repo = "hatsune-miku-windows-linux-cursors";
|
||||||
|
rev = "1.2.6";
|
||||||
|
hash = "sha256-OQjjOc9VnxJ7tWNmpHIMzNWX6WsavAOkgPwK1XAMwtE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
cd miku-cursor-linux
|
||||||
|
|
||||||
|
mkdir -p $out/share/icons/miku-cursor-linux
|
||||||
|
cp -r * $out/share/icons/miku-cursor-linux
|
||||||
|
install -m644 index.theme $out/share/icons/miku-cursor-linux/index.theme
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue