Merge pull request 'nixos-refactor: Consolidate, cleanup, clarify' (#25) from nixos-refactor into main
Reviewed-on: #25
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
201
dotfiles/flake.lock
generated
@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734906446,
|
||||
"narHash": "sha256-6OWluVE2A8xi+8V3jN9KA72RCgJjYdyyuLBUjxZ2q2U=",
|
||||
"lastModified": 1736102453,
|
||||
"narHash": "sha256-5qb4kb7Xbt8jJFL/oDqOor9Z2+E+A+ql3PiyDvsfWZ0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "eecb74dc79bb6752a2a507e6edee3042390a6091",
|
||||
"rev": "4846091641f3be0ad7542086d52769bb7932bde6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -119,6 +119,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1734969791,
|
||||
"narHash": "sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "92f4890bd150fc9d97b61b3583680c0524a8cafe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -261,11 +277,11 @@
|
||||
"zig": "zig"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735861317,
|
||||
"narHash": "sha256-XpFTJoY+0nsVdIQZmJt3SMgQkYr8KI5DFQ4b5cf3LM4=",
|
||||
"lastModified": 1736372994,
|
||||
"narHash": "sha256-iCb3+KniUL0Ic1AUkaM3CpO2UGNW6CQSigVzuVUQ8T0=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "b65c26966a73b0a2142d69c69c4e486c1e3f38f9",
|
||||
"rev": "eb40cce45e6593a4065a32681d27c75c4ca3a9c9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -274,6 +290,37 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"stylix",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"stylix",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731363552,
|
||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -296,6 +343,28 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -320,11 +389,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735344290,
|
||||
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
|
||||
"lastModified": 1736373539,
|
||||
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
|
||||
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -342,15 +411,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733085484,
|
||||
"narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=",
|
||||
"lastModified": 1733572789,
|
||||
"narHash": "sha256-zjO6m5BqxXIyjrnUziAzk4+T4VleqjstNudSqWcpsHI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163",
|
||||
"rev": "c7ffc9727d115e433fd884a62dc164b587ff651d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@ -400,11 +470,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734906236,
|
||||
"narHash": "sha256-vH/ysV2ONGQgYZPtcJKwc8jJivzyVxru2aaOxC20ZOE=",
|
||||
"lastModified": 1736115290,
|
||||
"narHash": "sha256-Jcn6yAzfUMcxy3tN/iZRbi/QgrYm7XLyVRl9g/nbUl4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "6dea3fba08fd704dd624b6d4b261638fb4003c9c",
|
||||
"rev": "52202272d89da32a9f866c0d10305a5e3d954c50",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -431,11 +501,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735851503,
|
||||
"narHash": "sha256-r5FFHhiZZOOlzWsS06oz+7MKpjJydDXsD9N2NcKFSjE=",
|
||||
"lastModified": 1736370994,
|
||||
"narHash": "sha256-0rt/+Ma9a3HMmvxziMMmUTb5dPu4gN+lSbW+K/zxG6o=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "f3c49c1295126c2154ee800ceedb48b79451840c",
|
||||
"rev": "c9822b08f914da2997e8ef47c8bef8016e5ff313",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -456,11 +526,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735734474,
|
||||
"narHash": "sha256-9OV4lOqrEJVLdOrpNN/9msNwAhI6FQTu4N7fufilG08=",
|
||||
"lastModified": 1735774328,
|
||||
"narHash": "sha256-vIRwLS9w+N99EU1aJ+XNOU6mJTxrUBa31i1r82l0V7s=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "271df559dd30e4bc5ec6af02d017ac0aaabd63a7",
|
||||
"rev": "e3b6af97ddcfaafbda8e2828c719a5af84f662cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -485,11 +555,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734906472,
|
||||
"narHash": "sha256-pWPRv/GA/X/iAwoE6gMNUqn/ZeJX1IeLPRpZI0tTPK0=",
|
||||
"lastModified": 1736114838,
|
||||
"narHash": "sha256-FxbuGQExtN37ToWYnGmO6weOYN6WPHN/RAqbr7gNPek=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "c77109d7e1ddbcdb87cafd32ce411f76328ae152",
|
||||
"rev": "6997fe382dcf396704227d2b98ffdd5066da6959",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -514,11 +584,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734906259,
|
||||
"narHash": "sha256-P79t/7HbACO4/PuJBroGpTptvCWJtXTv+gWsF+sM6MI=",
|
||||
"lastModified": 1735393019,
|
||||
"narHash": "sha256-NPpqA8rtmDLsEmZOmz+qR67zsB6Y503Jnv+nSFLKJZ8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "0404833ea18d543df44df935ebf1b497310eb046",
|
||||
"rev": "55608efdaa387af7bfdc0eddb404c409958efa43",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -539,11 +609,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735316583,
|
||||
"narHash": "sha256-AiiUwHWHfEdpFzXy7l1x3zInCUa1xcRMrbZ1XRSkzwU=",
|
||||
"lastModified": 1736164519,
|
||||
"narHash": "sha256-1LimBKvDpBbeX+qW7T240WEyw+DBVpDotZB4JYm8Aps=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "8f15d45b120b33712f6db477fe5ffb18034d0ea8",
|
||||
"rev": "3c895da64b0eb19870142196fa48c07090b441c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -564,11 +634,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734793513,
|
||||
"narHash": "sha256-rrrHcXapXJvGFqX+L/Bb0182L25jofAZ0fm1FInvrTQ=",
|
||||
"lastModified": 1735493474,
|
||||
"narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "4d7367b6eee87397e2dbca2e78078dd0a4ef4c61",
|
||||
"rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -579,11 +649,11 @@
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1735500379,
|
||||
"narHash": "sha256-5qmX6YYjYfVYBbsmd2XxbTi7A59YuuN9IwfXU7qFquQ=",
|
||||
"lastModified": 1736334301,
|
||||
"narHash": "sha256-370z+WLVnD7LrN/SvTCZxPl/XPTshS5NS2dHN4iyK6o=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "c31b6cbd11707fe2c74ad805ef085d59d75116ae",
|
||||
"rev": "5f4ec93d432cd5288f6fe20d8842dceb5a065885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -643,22 +713,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1730741070,
|
||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1733229606,
|
||||
@ -677,11 +731,11 @@
|
||||
},
|
||||
"nixpkgs-unstable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1735471104,
|
||||
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
|
||||
"lastModified": 1736012469,
|
||||
"narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
|
||||
"rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -708,11 +762,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1735669367,
|
||||
"narHash": "sha256-tfYRbFhMOnYaM4ippqqid3BaLOXoFNdImrfBfCp4zn0=",
|
||||
"lastModified": 1736200483,
|
||||
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "edf04b75c13c2ac0e54df5ec5c543e300f76f1c9",
|
||||
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -745,15 +799,14 @@
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734797603,
|
||||
"narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=",
|
||||
"lastModified": 1735882644,
|
||||
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498",
|
||||
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -784,11 +837,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735844895,
|
||||
"narHash": "sha256-CIRlqX9tBK2awJkmVu2cKuap/0QziDXStQZ/u/+e8Z4=",
|
||||
"lastModified": 1736203741,
|
||||
"narHash": "sha256-eSjkBwBdQk+TZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "24d89184adf76d7ccc99e659dc5f3838efb5ee32",
|
||||
"rev": "c9c88f08e3ee495e888b8d7c8624a0b2519cb773",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -803,8 +856,10 @@
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"git-hooks": "git-hooks",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": [
|
||||
@ -816,17 +871,17 @@
|
||||
"tinted-tmux": "tinted-tmux"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735840530,
|
||||
"narHash": "sha256-4O+KR6WSb40pcIPO9QboI59eH3/oxNEvCwXkFi6QvvM=",
|
||||
"lastModified": 1736300250,
|
||||
"narHash": "sha256-xyEutjs7pWQ7cLqfdTnhvWWeJ136wu6Jlxz5ez4htHE=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "90f95c5d8408360fc38cb3a862565bcb08ae6aa8",
|
||||
"rev": "743ad1da11fec9711f46c2fcf46e7142da0594cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"ref": "release-24.11",
|
||||
"repo": "stylix",
|
||||
"rev": "90f95c5d8408360fc38cb3a862565bcb08ae6aa8",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@ -1004,11 +1059,11 @@
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735849099,
|
||||
"narHash": "sha256-nYykv3COeYunqlha9Co+8CCigM2GtdtS7vw9xuhoO7Q=",
|
||||
"lastModified": 1736267677,
|
||||
"narHash": "sha256-7FH/gFShKOzf46yKqA4VWAaWxuyHBRnXOdaffbTxVo4=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "b275d71ba83928121235a4e7968b9be55986fdc6",
|
||||
"rev": "c96c6a1ebf1bea782f9528dc316d986a6087ebc0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -1,25 +1,23 @@
|
||||
{
|
||||
description = "Joey's Flake";
|
||||
inputs = {
|
||||
# Package repositories:
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
hyprland = {
|
||||
url = "github:hyprwm/Hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Applications:
|
||||
hyprland = {
|
||||
url = "github:hyprwm/Hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
nixgl.url = "github:nix-community/nixGL";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
stylix = {
|
||||
type = "github";
|
||||
owner = "danth";
|
||||
repo = "stylix";
|
||||
rev = "90f95c5d8408360fc38cb3a862565bcb08ae6aa8"; # Before breaking commit that inits ghostty
|
||||
#rev = "6eb0597e345a7f4a16f7d7b14154fc151790b419";
|
||||
#url = "github:danth/stylix";
|
||||
url = "github:danth/stylix/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||
@ -39,137 +37,64 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
vars = {
|
||||
user = {
|
||||
username = "joey";
|
||||
realname = "Joey Hafner";
|
||||
email = "joey@jafner.net";
|
||||
keys = {
|
||||
gpgSigningKey = "$HOME/.keys/joey@jafner.net.desktop.sign.gpg";
|
||||
gpgSigningKeyFingerprint = "B0BBF464024BCEAE";
|
||||
gpgEncryptKey = "$HOME/.keys/joey@jafner.net.encrypt.gpg";
|
||||
sshKey = "$HOME/.keys/joey.desktop@jafner.net";
|
||||
ageKey = "$HOME/.keys/joey.author.key";
|
||||
};
|
||||
};
|
||||
laptop = {
|
||||
hostname = "joey-laptop";
|
||||
theme = "gruvbox-warm";
|
||||
sshKey = "joey.laptop@jafner.net";
|
||||
};
|
||||
desktop = {
|
||||
hostname = "joey-desktop";
|
||||
sshKey = "joey.desktop@jafner.net";
|
||||
};
|
||||
flake = {
|
||||
gitServer.http = "https://gitea.jafner.tools";
|
||||
gitServer.ssh = "ssh://git@gitea.jafner.tools:2225";
|
||||
owner = "Jafner";
|
||||
repoName = "Jafner.net";
|
||||
branch = "main";
|
||||
repoPath = "Git/Jafner.net";
|
||||
path = "dotfiles/flake.nix";
|
||||
# Use the following to compose the full absolute path:
|
||||
# "/home/${sys.username}/${flake.repoPath}/${flake.path}"
|
||||
};
|
||||
system = "x86_64-linux";
|
||||
lib = nixpkgs.lib;
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ nixgl.overlay ];
|
||||
config = { allowUnfreePredicate = (_: true); };
|
||||
};
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
overlays = [ nixgl.overlay ];
|
||||
config = { allowUnfreePredicate = (_: true); };
|
||||
usr.joey = {
|
||||
realname = "Joey Hafner";
|
||||
email = "joey@jafner.net";
|
||||
encryptKey = "$HOME/.keys/joey@jafner.net.encrypt.gpg";
|
||||
ageKey = "$HOME/.keys/joey.author.key";
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
installer = lib.nixosSystem {
|
||||
desktop = let
|
||||
sys = {
|
||||
username = "joey";
|
||||
hostname = "desktop@jafner.net";
|
||||
sshKey = "joey.desktop@jafner.net";
|
||||
signingKey = "B0BBF464024BCEAE";
|
||||
shellPackage = "zsh";
|
||||
kernelPackage = "linux_zen"; # Read more: https://nixos.wiki/wiki/Linux_kernel; Other options: https://mynixos.com/nixpkgs/packages/linuxKernel.packages;
|
||||
wallpaper = ./assets/romb-3840x2160.png;
|
||||
arch = "x86_64-linux";
|
||||
flakeDir = "Git/Jafner.net/dotfiles";
|
||||
};
|
||||
system = "x86_64-linux";
|
||||
lib = nixpkgs.lib;
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ nixgl.overlay ];
|
||||
config = { allowUnfreePredicate = (_: true); };
|
||||
};
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
overlays = [ nixgl.overlay ];
|
||||
config = { allowUnfreePredicate = (_: true); };
|
||||
};
|
||||
in lib.nixosSystem {
|
||||
modules = [
|
||||
./nixos/installer/configuration.nix
|
||||
./systems/desktop/configuration.nix
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
users.joey = import ./home-manager/installer/home.nix;
|
||||
sharedModules = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
];
|
||||
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
|
||||
};
|
||||
}
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
|
||||
];
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit pkgs pkgs-unstable inputs;
|
||||
inherit vars;
|
||||
};
|
||||
};
|
||||
desktop = lib.nixosSystem {
|
||||
modules = [
|
||||
./nixos/desktop/configuration.nix
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
users.joey = import ./home-manager/desktop/home.nix;
|
||||
sharedModules = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
];
|
||||
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
|
||||
};
|
||||
home-manager.sharedModules = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
];
|
||||
home-manager.extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit sys usr flake; };
|
||||
}
|
||||
];
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit pkgs pkgs-unstable inputs;
|
||||
inherit vars;
|
||||
};
|
||||
};
|
||||
laptop = lib.nixosSystem {
|
||||
modules = [
|
||||
./nixos/laptop/configuration.nix
|
||||
inputs.hyprland.nixosModules.default
|
||||
#inputs.stylix.nixosModules.stylix
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
users.joey = import ./home-manager/laptop/home.nix;
|
||||
sharedModules = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
];
|
||||
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
|
||||
};
|
||||
}
|
||||
];
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit pkgs pkgs-unstable inputs;
|
||||
inherit vars;
|
||||
};
|
||||
};
|
||||
};
|
||||
homeConfigurations = {
|
||||
laptop = home-manager.lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./home-manager/laptop/home.nix
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit pkgs pkgs-unstable inputs;
|
||||
inherit vars;
|
||||
};
|
||||
};
|
||||
desktop = home-manager.lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./home-manager/desktop/home.nix
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit pkgs pkgs-unstable inputs;
|
||||
inherit vars;
|
||||
};
|
||||
specialArgs = { inherit pkgs pkgs-unstable inputs sys usr flake; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,97 +0,0 @@
|
||||
{ pkgs, vars, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
ollama-rocm
|
||||
( writeShellApplication {
|
||||
name = "ollama-chat";
|
||||
runtimeInputs = [
|
||||
libnotify
|
||||
];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
DEFAULT_MODEL="llama3.2:3b"
|
||||
|
||||
MODEL=''$''\{1:-DEFAULT_MODEL}
|
||||
|
||||
# if [ -z "''$''\{MODEL}" ]; then
|
||||
# echo "No model selected. Choose a model from the list below:"
|
||||
# unset modellist
|
||||
# while read -r model; do
|
||||
# modellist+=( "$model" )
|
||||
# done< <(${pkgs.ollama-rocm}/bin/ollama list | tail -n+2)
|
||||
# select model in "''$''\{modellist[@]}"; do
|
||||
# MODEL=$(echo "$model" | tr -s ' ' | cut -d' ' -f1)
|
||||
# echo "Selected: $MODEL"
|
||||
# export MODEL
|
||||
# break
|
||||
# done
|
||||
# fi
|
||||
|
||||
echo "Loading model $MODEL"
|
||||
${pkgs.ollama-rocm}/bin/ollama run "$MODEL" ""
|
||||
echo "Finished loading $MODEL"
|
||||
|
||||
${pkgs.ollama-rocm}/bin/ollama run "$MODEL"
|
||||
|
||||
echo "Unloading model $MODEL"
|
||||
${pkgs.ollama-rocm}/bin/ollama stop "$MODEL"
|
||||
'';
|
||||
} )
|
||||
];
|
||||
|
||||
xdg.desktopEntries.ollama = {
|
||||
exec = "kitty-popup ollama-wrapped";
|
||||
icon = "/home/${vars.user.username}/.icons/custom/ollama.png";
|
||||
name = "AI Chat";
|
||||
categories = [ "Utility" ];
|
||||
type = "Application";
|
||||
actions = {};
|
||||
};
|
||||
|
||||
home.file."ollama.png" = {
|
||||
target = ".icons/custom/ollama.png";
|
||||
source = pkgs.fetchurl {
|
||||
url = "https://ollama.com/public/icon-64x64.png";
|
||||
sha256 = "sha256-jzjt+wB9e3TwPSrXpXwCPapngDF5WtEYNt9ZOXB2Sgs=";
|
||||
};
|
||||
};
|
||||
|
||||
home.file."codewriter.Modelfile" = {
|
||||
target = ".ollama/codewriter.Modelfile";
|
||||
text = ''
|
||||
FROM llama3.3:70b
|
||||
PARAMETER temperature 1
|
||||
SYSTEM """
|
||||
I want you to act as a senior full-stack tech leader and top-tier brilliant software developer, you embody technical excellence and a deep understanding of a wide range of technologies.
|
||||
Your expertise covers not just coding, but also algorithm design, system architecture, and technology strategy.
|
||||
For every question there is no need to explain, only give the solution.
|
||||
|
||||
Coding Mastery: Possess exceptional skills in programming languages including Python, JavaScript, SQL, NoSQL, mySQL, C++, C, Rust, Groovy, Go, and Java.
|
||||
Your proficiency goes beyond mere syntax; you explore and master the nuances and complexities of each language, crafting code that is both highly efficient and robust.
|
||||
Your capability to optimize performance and manage complex codebases sets the benchmark in software development.
|
||||
Python | JavaScript | C++ | C | RUST | Groovy | Go | Java | SQL | MySQL | NoSQL
|
||||
Efficient, Optimal, Good Performance, Excellent Complexity, Robust Code
|
||||
|
||||
Cutting-Edge Technologies: Adept at leveraging the latest technologies, frameworks, and tools to drive innovation and efficiency.
|
||||
Experienced with Docker, Kubernetes, React, Angular, AWS, Supabase, Firebase, Azure, and Google Cloud.
|
||||
Your understanding of these platforms enables you to architect and deploy scalable, resilient applications that meet modern business demands.
|
||||
Docker | Kubernetes | React | Angular | AWS | Supabase | Firebase | Azure | Google Cloud Seamlessly Integrating Modern Tech Stacks Complex Algorithms & Data Structures Optimized Solutions for Enhanced Performance & Scalability
|
||||
|
||||
Solution Architect: Your comprehensive grasp of the software development lifecycle empowers you to design solutions that are not only technically sound but also align perfectly with business goals. From concept to deployment, you ensure adherence to industry best practices and agile methodologies, making the development process both agile and effective.
|
||||
|
||||
Interactive Solutions: When crafting user-facing features, employ modern ES6 JavaScript, TypeScript, and native browser APIs to manage interactivity seamlessly, enabling a dynamic and engaging user experience. Your focus lies in delivering functional, ready-to-deploy code, ensuring that explanations are succinct and directly aligned with the required solutions.
|
||||
|
||||
Never explain the code just write code.
|
||||
"""
|
||||
'';
|
||||
};
|
||||
|
||||
home.file."custom.Modelfile" = {
|
||||
enable = true;
|
||||
target = ".ollama/custom.Modelfile";
|
||||
text = ''
|
||||
FROM /home/joey/.llm/models/my-model.gguf
|
||||
'';
|
||||
};
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
{ inputs, ... }: {
|
||||
# services.flatpak.packages = [
|
||||
# "io.github.zen_browser.zen/x86_64/stable"
|
||||
# ];
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
};
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
};
|
||||
home.packages = [
|
||||
inputs.zen-browser.packages."x86_64-linux".default
|
||||
#pkgs-unstable.zen-browser
|
||||
];
|
||||
}
|
@ -1,118 +0,0 @@
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"title": "Ollama",
|
||||
"provider": "ollama",
|
||||
"model": "AUTODETECT"
|
||||
},
|
||||
{
|
||||
"title": "OpenRouter LLaMA 3 70B",
|
||||
"provider": "openai",
|
||||
"model": "meta-llama/llama-3-70b-instruct",
|
||||
"apiBase": "https://openrouter.ai/api/v1",
|
||||
"apiKey": "ENC[AES256_GCM,data:OM0zLvnnjY5OcOfw0GGGplDnopUx8EgVY4nvtnMC19iyRN+p+KHGRkaSNuXsqSijWs5VVOi2GkNPpwcHrf6J7wV3UmO1DTR2Gg==,iv:fiq9SQDu2DKq/LZRYNsST6LsxFOxs38yrMmrWhmgVRQ=,tag:qqIJo4TBaiATk1fdnlPw7Q==,type:str]"
|
||||
}
|
||||
],
|
||||
"slashCommands": [
|
||||
{
|
||||
"name": "edit",
|
||||
"description": "Edit selected code"
|
||||
},
|
||||
{
|
||||
"name": "comment",
|
||||
"description": "Write comments for the selected code"
|
||||
},
|
||||
{
|
||||
"name": "share",
|
||||
"description": "Export this session as markdown"
|
||||
},
|
||||
{
|
||||
"name": "cmd",
|
||||
"description": "Generate a shell command"
|
||||
}
|
||||
],
|
||||
"customCommands": [
|
||||
{
|
||||
"name": "test",
|
||||
"prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
|
||||
"description": "Write unit tests for highlighted code"
|
||||
}
|
||||
],
|
||||
"contextProviders": [
|
||||
{
|
||||
"name": "code",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "docs",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "diff",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "open",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "terminal",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "problems",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "folder",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "codebase",
|
||||
"params": {}
|
||||
}
|
||||
],
|
||||
"tabAutocompleteModel": {
|
||||
"title": "starcoder2:3b",
|
||||
"provider": "ollama",
|
||||
"model": "starcoder2:3b",
|
||||
"apiBase": "http://localhost:11434"
|
||||
},
|
||||
"tabAutocompleteOptions": {
|
||||
"disable": false,
|
||||
"useCopyBuffer": false,
|
||||
"useFileSuffix": true,
|
||||
"maxPromptTokens": 1024,
|
||||
"prefixPercentage": 0.85,
|
||||
"maxSuffixPercentage": 0.25,
|
||||
"debounceDelay": 800,
|
||||
"multilineCompletions": "auto",
|
||||
"useCache": false,
|
||||
"useOtherFiles": true,
|
||||
"disableInFiles": []
|
||||
},
|
||||
"allowAnonymousTelemetry": true,
|
||||
"embeddingsProvider": {
|
||||
"provider": "ollama",
|
||||
"model": "nomic-embed-text:latest",
|
||||
"apiBase": "http://localhost:11434"
|
||||
},
|
||||
"docs": [],
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1v5wy7epv5mm8ddf3cfv8m0e9w4s693dw7djpuytz9td8ycha5f0sv2se9n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXR3VBK2JMNnZsUllQbXA3\neDU3ZkpTY3k1RzVaMHV5amJtWlk1SVNJdmlBCmVubWxHYWkxSy9LUTFLTDR6b1Z6\nek9zQTRIcnRQYUl2cVFhZ1Arc3EvY00KLS0tIFIyODdmQVZDYXdYazZod1lac0hD\nOVVwc095akp3dHM3Z3dPcFhmYTFJWHMKlIHpUzJb51+ygCpUSzVXaksEuuHt/wVy\nt4y/DiSHSzotvbA3zm27yHhjiPopNyJxK0CKtgZ9B5QOZDeAwGBSig==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-10-02T22:46:20Z",
|
||||
"mac": "ENC[AES256_GCM,data:x6TTD1HD8XO/e2myCLyG9b5P74ZyvlCJkDrNxlEpIO/Trfr3Hv0GdDPLvR9jsCxXWz+LkBE0xl7wA1e7d1vBQck0vzH3H7XEdwcLw5me+x3vTxHb19P6Po5P0sgPwlSgAA2p+RrdWxlmRaInoWjrwIAt547AGir9r826CNUBmew=,iv:VQgqq+ZhbvlHVZB6Q9s6HbG3NDrtfah4HzYpS6e7S0k=,tag:cbX/jHdQI/K2j+rBDVOtgw==,type:str]",
|
||||
"pgp": null,
|
||||
"encrypted_regex": "^(apiKey)$",
|
||||
"version": "3.9.0"
|
||||
}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ vesktop ];
|
||||
#services.flatpak.packages = [ "dev.vencord.Vesktop/x86_64/stable" ];
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
protonmail-desktop
|
||||
];
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
dolphin-emu
|
||||
mgba
|
||||
desmume
|
||||
];
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
terraform
|
||||
sops ssh-to-age age
|
||||
doctl
|
||||
k3s
|
||||
(wrapHelm kubernetes-helm {
|
||||
plugins = with pkgs.kubernetes-helmPlugins; [
|
||||
helm-diff
|
||||
helm-secrets
|
||||
helm-s3
|
||||
helm-git
|
||||
];
|
||||
})
|
||||
helmfile-wrapped
|
||||
];
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
services.flatpak.packages = [
|
||||
"org.prismlauncher.PrismLauncher/x86_64/stable"
|
||||
];
|
||||
home.packages = [
|
||||
pkgs.prismlauncher
|
||||
];
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
vlc
|
||||
ffmpeg-full
|
||||
];
|
||||
services.flatpak.packages = [
|
||||
"no.mifi.losslesscut/x86_64/stable"
|
||||
];
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
obs-vaapi
|
||||
obs-vkcapture
|
||||
input-overlay
|
||||
wlrobs
|
||||
];
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
{ vars, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
rofi-rbw-wayland
|
||||
wl-clipboard
|
||||
dotool
|
||||
];
|
||||
programs.tofi = {
|
||||
enable = false;
|
||||
settings = {};
|
||||
};
|
||||
programs.rofi = {
|
||||
enable = false;
|
||||
configPath = "$XDG_CONFIG_HOME/rofi/config.rasi";
|
||||
extraConfig = {};
|
||||
location = "center";
|
||||
terminal = "${pkgs.kitty}/bin/kitty";
|
||||
};
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
settings = {
|
||||
base_url = "https://bitwarden.jafner.tools";
|
||||
email = "jafner425@gmail.com";
|
||||
lock_timeout = 2592000;
|
||||
pinentry = pkgs.pinentry-qt;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.desktopEntries = {
|
||||
rofi-rbw = {
|
||||
exec = "${pkgs.rofi-rbw-wayland}/bin/rofi-rbw";
|
||||
icon = "/home/${vars.user.username}/.icons/custom/bitwarden.png";
|
||||
name = "Bitwarden";
|
||||
categories = [ "Utility" "Security" ];
|
||||
type = "Application";
|
||||
};
|
||||
};
|
||||
|
||||
home.file."rofi-rbw.rc" = {
|
||||
target = ".config/rofi-rbw.rc";
|
||||
text = ''
|
||||
action="type"
|
||||
typing-key-delay=0
|
||||
selector-args="-W 40% -H 30%"
|
||||
selector="wofi"
|
||||
clipboarder="wl-copy"
|
||||
typer="dotool"
|
||||
keybindings="Enter:type:username:enter:tab:type:password:enter:copy:totp"
|
||||
'';
|
||||
};
|
||||
|
||||
home.file."bitwarden.png" = {
|
||||
target = ".icons/custom/bitwarden.png";
|
||||
source = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/bitwarden/clients/refs/heads/main/apps/desktop/resources/icons/64x64.png";
|
||||
sha256 = "sha256-ZEYwxeoL8doV4y3M6kAyfz+5IoDsZ+ci8m+Qghfdp9M=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ spotify-qt librespot ];
|
||||
systemd.user.services.librespot = {
|
||||
Unit = {
|
||||
Description = "Librespot (an open source Spotify client)";
|
||||
Documentation = [ "https://github.com/librespot-org/librespot" "https://github.com/librespot-org/librespot/wiki/Options" ];
|
||||
};
|
||||
Service = {
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
ExecStart = "${pkgs.librespot}/bin/librespot --backend pulseaudio --system-cache /home/joey/.spotify -j";
|
||||
};
|
||||
};
|
||||
}
|
@ -1,160 +0,0 @@
|
||||
{ pkgs, pkgs-unstable, ... }: {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fastfetch
|
||||
tree
|
||||
bat
|
||||
fd
|
||||
eza
|
||||
fzf-git-sh
|
||||
wl-clipboard
|
||||
jq
|
||||
amdgpu_top
|
||||
mission-center
|
||||
nethogs
|
||||
( writeShellApplication {
|
||||
name = "kitty-popup";
|
||||
runtimeInputs = [];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
kitty \
|
||||
--override initial_window_width=1280 \
|
||||
--override initial_window_height=720 \
|
||||
--override remember_window_size=no \
|
||||
--class kitty-popup \
|
||||
"$@"
|
||||
'';
|
||||
} )
|
||||
pkgs-unstable.ghostty
|
||||
];
|
||||
|
||||
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
package = pkgs.kitty;
|
||||
};
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
newSession = true;
|
||||
shell = "$HOME/.nix-profile/bin/zsh";
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
dotDir = ".config/zsh";
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
shellAliases = {
|
||||
bat = "bat --paging=never --color=always";
|
||||
fd = "fd -Lu";
|
||||
ls = "eza";
|
||||
lt = "eza --tree";
|
||||
fetch = "fastfetch";
|
||||
neofetch = "fetch";
|
||||
find = ''fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'';
|
||||
nixgc = "nix-env --delete-generations 7d && nix-store --gc --print-dead";
|
||||
fzf-ssh = "ssh $(cat ~/.ssh/profiles | fzf --height 20%)";
|
||||
fsh = "fzf-ssh";
|
||||
k = "kubectl";
|
||||
};
|
||||
history = {
|
||||
share = true;
|
||||
save = 10000;
|
||||
size = 10000;
|
||||
expireDuplicatesFirst = false;
|
||||
extended = false;
|
||||
ignoreAllDups = false;
|
||||
ignoreDups = true;
|
||||
};
|
||||
initExtra = ''
|
||||
bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow
|
||||
bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow
|
||||
bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow
|
||||
bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow
|
||||
bindkey '^[[H' beginning-of-line # Home
|
||||
bindkey '^[[F' end-of-line # End
|
||||
bindkey '^[w' kill-region # Delete
|
||||
bindkey '^I^I' autosuggest-accept # Tab, Tab
|
||||
bindkey '^[' autosuggest-clear # Esc
|
||||
bindkey -s '^E' 'fzf-ssh\n'
|
||||
_fzf_compgen_path() {
|
||||
fd --hidden --exclude .git . "$1"
|
||||
}
|
||||
_fzf_compgen_dir() {
|
||||
fd --hidden --exclude .git . "$1"
|
||||
}
|
||||
eval "$(~/.nix-profile/bin/fzf --zsh)"
|
||||
'';
|
||||
};
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
git = true;
|
||||
extraOptions = [
|
||||
"--color=always"
|
||||
"--long"
|
||||
"--icons=always"
|
||||
"--no-time"
|
||||
"--no-user"
|
||||
];
|
||||
};
|
||||
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
copyindent = true;
|
||||
relativenumber = true;
|
||||
expandtab = true;
|
||||
tabstop = 2;
|
||||
};
|
||||
extraConfig = ''
|
||||
set nocompatible
|
||||
filetype on
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
syntax on
|
||||
set cursorline
|
||||
set wildmenu
|
||||
set wildmode=list:longest
|
||||
'';
|
||||
};
|
||||
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.fzf;
|
||||
};
|
||||
|
||||
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
package = pkgs.btop-rocm;
|
||||
settings = {
|
||||
color_theme = "stylix";
|
||||
theme_background = true;
|
||||
update_ms = 500;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.desktopEntries = {
|
||||
btop = {
|
||||
exec = "kitty-popup btop";
|
||||
icon = "utilities-system-monitor";
|
||||
name = "btop";
|
||||
categories = [ "Utility" "System" ];
|
||||
type = "Application";
|
||||
};
|
||||
nethogs = {
|
||||
exec = "kitty-popup sudo nethogs";
|
||||
icon = "utilities-system-monitor";
|
||||
name = "nethogs";
|
||||
categories = [ "Utility" "System" ];
|
||||
type = "Application";
|
||||
};
|
||||
};
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{ ... }: {
|
||||
services.flatpak.packages = [
|
||||
"at.vintagestory.VintageStory/x86_64/stable"
|
||||
];
|
||||
# home.packages = [
|
||||
# pkgs.vintagestory
|
||||
# ];
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ nixd ];
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
adzero.vscode-sievehighlight
|
||||
];
|
||||
userSettings = {
|
||||
#"editor.fontFamily" = "'DejaVu Sans Mono'";
|
||||
"nix.serverPath" = "nixd";
|
||||
"nix.enableLanguageServer" = true;
|
||||
"explorer.confirmDragAndDrop" = false;
|
||||
"explorer.confirmDelete" = false;
|
||||
"git.autofetch" = true;
|
||||
"git.confirmSync" = false;
|
||||
"git.enableSmartCommit" = true;
|
||||
"security.workspace.trust.untrustedFiles" = "open";
|
||||
"terminal.integrated.defaultProfile.linux" = "zsh";
|
||||
#"terminal.integrated.fontFamily" = "'DejaVu Sans Mono'";
|
||||
"terminal.integrated.profiles.linux.zsh.path" = "/usr/bin/zsh";
|
||||
};
|
||||
};
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
{ ... }: {
|
||||
programs.zed-editor = {
|
||||
# https://mynixos.com/home-manager/options/programs.zed-editor
|
||||
enable = true;
|
||||
extensions = [ "Nix" "Catppuccin" ];
|
||||
userSettings = {
|
||||
languages."Nix"."language_servers" = [ "!nil" "nixd" ];
|
||||
theme = {
|
||||
mode = "system";
|
||||
dark = "Catppuccin Mocha";
|
||||
light = "Catppuccin Mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
{ ... }: {
|
||||
xdg.mimeApps = let
|
||||
webBrowser = "zen.desktop";
|
||||
emailClient = "proton-mail.desktop";
|
||||
|
||||
imageViewer = "org.kde.gwenview.desktop";
|
||||
musicPlayer = "vlc.desktop";
|
||||
videoPlayer = "vlc.desktop";
|
||||
|
||||
textEditor = "dev.zed.Zed.desktop";
|
||||
docViewer = "zen.desktop";
|
||||
|
||||
fileManager = "org.kde.dolphin.desktop";
|
||||
terminal = "org.kde.konsole.desktop";
|
||||
archiveManager = "org.kde.ark.desktop";
|
||||
in {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"x-scheme-handler/http" = "${webBrowser}";
|
||||
"x-scheme-handler/https" = "${webBrowser}";
|
||||
"x-scheme-handler/about" = "${webBrowser}";
|
||||
"x-scheme-handler/unknown" = "${webBrowser}";
|
||||
"application/json" = "${textEditor}";
|
||||
"application/pdf" = "${webBrowser}";
|
||||
"application/vnd.apple.keynote" = "${textEditor}";
|
||||
"application/vnd.ms-publisher" = "${textEditor}";
|
||||
"application/x-desktop" = "${textEditor}";
|
||||
"application/x-executable" = "${textEditor}";
|
||||
"text/css" = "${textEditor}";
|
||||
"text/html" = "${textEditor}";
|
||||
"text/plain" = "${textEditor}";
|
||||
"video/mp4" = "${videoPlayer}";
|
||||
"video/x-matroska" = "${videoPlayer}";
|
||||
};
|
||||
associations.added = {
|
||||
};
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 88 KiB |
@ -1,20 +0,0 @@
|
||||
{ pkgs, vars, ... }: {
|
||||
home.packages = with pkgs; [ git ];
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "${vars.user.realname}";
|
||||
userEmail = "${vars.user.email}";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
core.sshCommand = "ssh -i /home/${vars.user.username}/.ssh/${vars.desktop.sshKey}";
|
||||
gpg.format = "openpgp";
|
||||
commit.gpgsign = true;
|
||||
tag.gpgsign = true;
|
||||
user.signingKey = "${vars.user.keys.gpgSigningKeyFingerprint}";
|
||||
};
|
||||
delta.enable = true;
|
||||
delta.options = {
|
||||
side-by-side = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,169 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
mako
|
||||
libnotify
|
||||
swww
|
||||
polkit-kde-agent
|
||||
dolphin
|
||||
power-profiles-daemon
|
||||
pavucontrol
|
||||
grimblast
|
||||
waybar
|
||||
];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
plugins = [];
|
||||
settings = { };
|
||||
};
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show = "drun";
|
||||
width = "40%";
|
||||
height = "20%";
|
||||
allow_markup = true;
|
||||
};
|
||||
};
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
# layer = "top";
|
||||
# position = "top";
|
||||
# height = 30;
|
||||
# spacing = 30;
|
||||
# margin-left = 0;
|
||||
# margin-right = 0;
|
||||
# modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
|
||||
# modules-center = [ "hyprland/workspaces" ];
|
||||
# modules-right = [
|
||||
# "pulseaudio"
|
||||
# "network"
|
||||
# "battery"
|
||||
# "clock"
|
||||
# "custom/power"
|
||||
# ];
|
||||
# "hyprland/workspaces" = {
|
||||
# active-only = false;
|
||||
# on-click = "activate";
|
||||
# format = "{}";
|
||||
# format-icons = {
|
||||
# urgent = "";
|
||||
# active = "";
|
||||
# default = "";
|
||||
# };
|
||||
# persistent-workspaces = {
|
||||
# "*" = 3;
|
||||
# };
|
||||
# };
|
||||
# "wlr/taskbar" = {
|
||||
# format = "{icon}";
|
||||
# icon-size = 18;
|
||||
# tooltip-format = "{title}";
|
||||
# on-click = "activate";
|
||||
# on-click-middle = "close";
|
||||
# ignore-list = [
|
||||
# "kitty"
|
||||
# ];
|
||||
# app_ids-mapping = {};
|
||||
# rewrite = {};
|
||||
# };
|
||||
# "hyprland/window" = {
|
||||
# rewrite = {};
|
||||
# separate-outputs = true;
|
||||
# };
|
||||
# "custom/appmenu" = {
|
||||
# format = " "; # Manual padding to move it further from left edge
|
||||
# on-click = "wofi --show drun";
|
||||
# };
|
||||
# "custom/exit" = {
|
||||
# format = " "; # Manual padding to move it further from right edge
|
||||
# on-click = "wlogout";
|
||||
# tooltip-format = "Power Menu";
|
||||
# };
|
||||
# keyboard-state = {
|
||||
# numlock = true;
|
||||
# capslock = true;
|
||||
# format = "{name} {icon}";
|
||||
# format-icons = {
|
||||
# locked = " ";
|
||||
# unlocked = " ";
|
||||
# };
|
||||
# };
|
||||
# tray = {
|
||||
# icon-size = 21;
|
||||
# spacing = 10;
|
||||
# };
|
||||
# clock = {
|
||||
# tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
# format-alt = ''{:%Y-%m-%d}'';
|
||||
# };
|
||||
# battery = {
|
||||
# states = {
|
||||
# warning = 30;
|
||||
# critical = 15;
|
||||
# };
|
||||
# format = ''{capacity}% {icon}'';
|
||||
# format-full = ''{capacity}% {icon}'';
|
||||
# format-charging = ''{capacity}% '';
|
||||
# format-plugged = ''{capacity}% '';
|
||||
# format-alt = ''{time} {icon}'';
|
||||
# format-icons = [ " " " " " " " " " " ];
|
||||
# };
|
||||
# power-profiles-daemon = {
|
||||
# format = ''{icon}'';
|
||||
# tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||
# tooltip = true;
|
||||
# format-icons = {
|
||||
# default = '' '';
|
||||
# performance = '' '';
|
||||
# balanced = '' '';
|
||||
# power-saver = '' '';
|
||||
# };
|
||||
# };
|
||||
# network = {
|
||||
# format-wifi = ''{essid} ({signalStrength}%) '';
|
||||
# format-ethernet = ''{ipaddr}/{cidr} '';
|
||||
# tooltip-format = ''{ifname} via {gwaddr} '';
|
||||
# format-linked = ''{ifname} (No IP) '';
|
||||
# format-disconnected = ''Disconnected ⚠ '';
|
||||
# format-alt = ''{ifname}: {ipaddr}/{cidr}'';
|
||||
# on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
|
||||
# on-click-right = "nm-connection-editor";
|
||||
# };
|
||||
# pulseaudio = {
|
||||
# format = ''{volume}% {icon} {format_source}'';
|
||||
# format-bluetooth = ''{volume}% {icon} {format_source}'';
|
||||
# format-bluetooth-muted = ''{icon} {format_source}'';
|
||||
# format-muted = ''{format_source}'';
|
||||
# format-source = ''{volume}% '';
|
||||
# format-source-muted = '' '';
|
||||
# format-icons = {
|
||||
# headphone = '' '';
|
||||
# hands-free = '' '';
|
||||
# headset = '' '';
|
||||
# phone = '' '';
|
||||
# portable = '' '';
|
||||
# car = '' '';
|
||||
# default = [ "" " " " " ];
|
||||
# };
|
||||
# on-click = ''pavucontrol'';
|
||||
# };
|
||||
# "custom/power" = {
|
||||
# format = ''⏻ '';
|
||||
# tooltip = false;
|
||||
# menu = "on-click";
|
||||
# menu-file = ''$HOME/.config/waybar/power_menu.xml'';
|
||||
# menu-actions = {
|
||||
# shutdown = "shutdown";
|
||||
# reboot = "reboot";
|
||||
# suspend = "systemctl suspend";
|
||||
# hibernate = "systemctl hibernate";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,355 +0,0 @@
|
||||
/*
|
||||
* __ __ _ ____ _ _
|
||||
* \ \ / /_ _ _ _| |__ __ _ _ __ / ___|| |_ _ _| | ___
|
||||
* \ \ /\ / / _` | | | | '_ \ / _` | '__| \___ \| __| | | | |/ _ \
|
||||
* \ V V / (_| | |_| | |_) | (_| | | ___) | |_| |_| | | __/
|
||||
* \_/\_/ \__,_|\__, |_.__/ \__,_|_| |____/ \__|\__, |_|\___|
|
||||
* |___/ |___/
|
||||
*
|
||||
* by Stephan Raabe (2024)
|
||||
* -----------------------------------------------------
|
||||
*/
|
||||
|
||||
@define-color backgroundlight #FFFFFF;
|
||||
@define-color backgrounddark #FFFFFF;
|
||||
@define-color workspacesbackground1 #FFFFFF;
|
||||
@define-color workspacesbackground2 #CCCCCC;
|
||||
@define-color bordercolor #FFFFFF;
|
||||
@define-color textcolor1 #000000;
|
||||
@define-color textcolor2 #000000;
|
||||
@define-color textcolor3 #FFFFFF;
|
||||
@define-color iconcolor #FFFFFF;
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* General
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
* {
|
||||
font-family: "Fira Sans Semibold", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0,0,0,0.2);
|
||||
border-bottom: 0px solid #ffffff;
|
||||
/* color: #FFFFFF; */
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Workspaces
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#workspaces {
|
||||
margin: 5px 1px 6px 1px;
|
||||
padding: 0px 1px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
color: @textcolor1;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 5px;
|
||||
margin: 4px 3px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
color: @textcolor3;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @textcolor1;
|
||||
background: @workspacesbackground2;
|
||||
border-radius: 15px;
|
||||
min-width: 40px;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: @textcolor1;
|
||||
background: @workspacesbackground2;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Tooltips
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
tooltip {
|
||||
border-radius: 10px;
|
||||
background-color: @backgroundlight;
|
||||
opacity:0.8;
|
||||
padding:20px;
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @textcolor2;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Window
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#window {
|
||||
background: @backgroundlight;
|
||||
margin: 10px 15px 10px 0px;
|
||||
padding: 2px 10px 0px 10px;
|
||||
border-radius: 12px;
|
||||
color:@textcolor2;
|
||||
font-size:16px;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
window#waybar.empty #window {
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Taskbar
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#taskbar {
|
||||
background: @backgroundlight;
|
||||
margin: 6px 15px 6px 0px;
|
||||
padding:0px;
|
||||
border-radius: 15px;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
border: 3px solid @backgroundlight;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
margin:0;
|
||||
border-radius: 15px;
|
||||
padding: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Modules
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Custom Quicklinks
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#custom-browser,
|
||||
#custom-filemanager,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#battery,
|
||||
#custom-appmenu,
|
||||
#clock {
|
||||
margin-right: 20px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: @iconcolor;
|
||||
padding: 4px 10px 2px 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#custom-quicklink1,
|
||||
#custom-quicklink2,
|
||||
#custom-quicklink3,
|
||||
#custom-quicklink4,
|
||||
#custom-quicklink5,
|
||||
#custom-quicklink6,
|
||||
#custom-quicklink7,
|
||||
#custom-quicklink8,
|
||||
#custom-quicklink9,
|
||||
#custom-quicklink10 {
|
||||
padding:0px;
|
||||
margin-right: 7px;
|
||||
font-size:20px;
|
||||
color: @iconcolor;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Custom Modules
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#custom-appmenu {
|
||||
background-color: @backgrounddark;
|
||||
color: @textcolor1;
|
||||
border-radius: 15px;
|
||||
margin: 10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Custom Exit
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#custom-exit {
|
||||
margin: 2px 20px 0px 0px;
|
||||
padding:0px;
|
||||
font-size:20px;
|
||||
color: @iconcolor;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Hardware Group
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#disk,#memory,#cpu,#language {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
font-size:16px;
|
||||
color:@iconcolor;
|
||||
}
|
||||
|
||||
#language {
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Clock
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#clock {
|
||||
background-color: @backgrounddark;
|
||||
font-size: 16px;
|
||||
color: @textcolor1;
|
||||
border-radius: 15px;
|
||||
margin: 10px 7px 10px 0px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Pulseaudio
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#pulseaudio {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: @backgrounddark;
|
||||
color: @textcolor1;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Network
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#network {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#network.ethernet {
|
||||
background-color: @backgroundlight;
|
||||
color: @textcolor2;
|
||||
}
|
||||
|
||||
#network.wifi {
|
||||
background-color: @backgroundlight;
|
||||
color: @textcolor2;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Bluetooth
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#bluetooth, #bluetooth.on, #bluetooth.connected {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 15px 10px 0px;
|
||||
}
|
||||
|
||||
#bluetooth.off {
|
||||
background-color: transparent;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Battery
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#battery {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 15px 10px 0px;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
color: @textcolor2;
|
||||
background-color: @backgroundlight;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: @backgroundlight;
|
||||
color: @textcolor2;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: @textcolor3;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Tray
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#tray {
|
||||
margin:0px 10px 0px 0px;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Other
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
@ -1,355 +0,0 @@
|
||||
@import "style.css";
|
||||
|
||||
waybar#window {
|
||||
background-color: @base0B;
|
||||
}
|
||||
|
||||
@define-color base00 #111349;
|
||||
@define-color base01 #332330;
|
||||
@define-color base02 #156eb2;
|
||||
@define-color base03 #66a3da;
|
||||
@define-color base04 #95bede;
|
||||
@define-color base05 #e2e1ef;
|
||||
@define-color base06 #e0e3f4;
|
||||
@define-color base07 #cce8f6;
|
||||
@define-color base08 #5196d1;
|
||||
@define-color base09 #5196cf;
|
||||
@define-color base0A #5796cc;
|
||||
@define-color base0B #5595d3;
|
||||
@define-color base0C #5896c9;
|
||||
@define-color base0D #5795d0;
|
||||
@define-color base0E #4f96d8;
|
||||
@define-color base0F #5894d3;
|
||||
|
||||
* {
|
||||
font-family: "DejaVu Sans";
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
window#waybar, tooltip {
|
||||
background: alpha(@base00, 1.000000);
|
||||
color: @base05;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
border-color: @base0D;
|
||||
}
|
||||
#wireplumber,
|
||||
#pulseaudio,
|
||||
#sndio {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#wireplumber.muted,
|
||||
#pulseaudio.muted,
|
||||
#sndio.muted {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#upower,
|
||||
#battery {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#upower.charging,
|
||||
#battery.Charging {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#network {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#network.disconnected {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#user {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#clock {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#backlight {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#cpu {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#disk {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#idle_inhibitor {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#temperature {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#mpd {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#language {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#keyboard-state {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#memory {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#window {
|
||||
padding: 0 5px;
|
||||
}
|
||||
window .modules-left #workspaces button {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #wireplumber,
|
||||
.modules-left #pulseaudio,
|
||||
.modules-left #sndio {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #workspaces button.focused,
|
||||
.modules-left #workspaces button.active {
|
||||
background: @base03;
|
||||
}
|
||||
.modules-left #workspaces button.urgent {
|
||||
background-color: @base08;
|
||||
}
|
||||
.modules-left #wireplumber.muted,
|
||||
.modules-left #pulseaudio.muted,
|
||||
.modules-left #sndio.muted {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-left #upower,
|
||||
.modules-left #battery {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #upower.charging,
|
||||
.modules-left #battery.Charging {
|
||||
background-color: @base0E;
|
||||
}
|
||||
.modules-left #network {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #network.disconnected {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-left #user {
|
||||
background-color: @base0F;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #clock {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #backlight {
|
||||
background-color: @base0E;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #cpu {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #disk {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #idle_inhibitor {
|
||||
background-color: @base06;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #temperature {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #mpd {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #language {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #keyboard-state {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #memory {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #window {
|
||||
background-color: @base0C;
|
||||
color: @base00;
|
||||
}
|
||||
window .modules-center #workspaces button {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #wireplumber,
|
||||
.modules-center #pulseaudio,
|
||||
.modules-center #sndio {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #workspaces button.focused,
|
||||
.modules-center #workspaces button.active {
|
||||
background: @base03;
|
||||
}
|
||||
.modules-center #workspaces button.urgent {
|
||||
background-color: @base08;
|
||||
}
|
||||
.modules-center #wireplumber.muted,
|
||||
.modules-center #pulseaudio.muted,
|
||||
.modules-center #sndio.muted {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-center #upower,
|
||||
.modules-center #battery {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #upower.charging,
|
||||
.modules-center #battery.Charging {
|
||||
background-color: @base0E;
|
||||
}
|
||||
.modules-center #network {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #network.disconnected {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-center #user {
|
||||
background-color: @base0F;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #clock {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #backlight {
|
||||
background-color: @base0E;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #cpu {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #disk {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #idle_inhibitor {
|
||||
background-color: @base06;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #temperature {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #mpd {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #language {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #keyboard-state {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #memory {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #window {
|
||||
background-color: @base0C;
|
||||
color: @base00;
|
||||
}
|
||||
window .modules-right #workspaces button {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #wireplumber,
|
||||
.modules-right #pulseaudio,
|
||||
.modules-right #sndio {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #workspaces button.focused,
|
||||
.modules-right #workspaces button.active {
|
||||
background: @base03;
|
||||
}
|
||||
.modules-right #workspaces button.urgent {
|
||||
background-color: @base08;
|
||||
}
|
||||
.modules-right #wireplumber.muted,
|
||||
.modules-right #pulseaudio.muted,
|
||||
.modules-right #sndio.muted {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-right #upower,
|
||||
.modules-right #battery {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #upower.charging,
|
||||
.modules-right #battery.Charging {
|
||||
background-color: @base0E;
|
||||
}
|
||||
.modules-right #network {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #network.disconnected {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-right #user {
|
||||
background-color: @base0F;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #clock {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #backlight {
|
||||
background-color: @base0E;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #cpu {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #disk {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #idle_inhibitor {
|
||||
background-color: @base06;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #temperature {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #mpd {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #language {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #keyboard-state {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #memory {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #window {
|
||||
background-color: @base0C;
|
||||
color: @base00;
|
||||
}
|
||||
|
@ -1,152 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ waybar ];
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
spacing = 30;
|
||||
margin-left = 0;
|
||||
margin-right = 0;
|
||||
modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
|
||||
modules-center = [ "hyprland/workspaces" ];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"battery"
|
||||
"clock"
|
||||
"custom/power"
|
||||
];
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
on-click = "activate";
|
||||
format = "{}";
|
||||
format-icons = {
|
||||
urgent = "";
|
||||
active = "";
|
||||
default = "";
|
||||
};
|
||||
persistent-workspaces = {
|
||||
"*" = 3;
|
||||
};
|
||||
};
|
||||
"wlr/taskbar" = {
|
||||
format = "{icon}";
|
||||
icon-size = 18;
|
||||
tooltip-format = "{title}";
|
||||
on-click = "activate";
|
||||
on-click-middle = "close";
|
||||
ignore-list = [
|
||||
"kitty"
|
||||
];
|
||||
app_ids-mapping = {};
|
||||
rewrite = {};
|
||||
};
|
||||
"hyprland/window" = {
|
||||
rewrite = {};
|
||||
separate-outputs = true;
|
||||
};
|
||||
"custom/appmenu" = {
|
||||
format = " "; # Manual padding to move it further from left edge
|
||||
on-click = "wofi --show drun";
|
||||
};
|
||||
"custom/exit" = {
|
||||
format = " "; # Manual padding to move it further from right edge
|
||||
on-click = "wlogout";
|
||||
tooltip-format = "Power Menu";
|
||||
};
|
||||
keyboard-state = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
format = "{name} {icon}";
|
||||
format-icons = {
|
||||
locked = " ";
|
||||
unlocked = " ";
|
||||
};
|
||||
};
|
||||
tray = {
|
||||
icon-size = 21;
|
||||
spacing = 10;
|
||||
};
|
||||
clock = {
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = ''{:%Y-%m-%d}'';
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = ''{capacity}% {icon}'';
|
||||
format-full = ''{capacity}% {icon}'';
|
||||
format-charging = ''{capacity}% '';
|
||||
format-plugged = ''{capacity}% '';
|
||||
format-alt = ''{time} {icon}'';
|
||||
format-icons = [ " " " " " " " " " " ];
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
format = ''{icon}'';
|
||||
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||
tooltip = true;
|
||||
format-icons = {
|
||||
default = '' '';
|
||||
performance = '' '';
|
||||
balanced = '' '';
|
||||
power-saver = '' '';
|
||||
};
|
||||
};
|
||||
network = {
|
||||
format-wifi = ''{essid} ({signalStrength}%) '';
|
||||
format-ethernet = ''{ipaddr}/{cidr} '';
|
||||
tooltip-format = ''{ifname} via {gwaddr} '';
|
||||
format-linked = ''{ifname} (No IP) '';
|
||||
format-disconnected = ''Disconnected ⚠ '';
|
||||
format-alt = ''{ifname}: {ipaddr}/{cidr}'';
|
||||
on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
|
||||
on-click-right = "nm-connection-editor";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = ''{volume}% {icon} {format_source}'';
|
||||
format-bluetooth = ''{volume}% {icon} {format_source}'';
|
||||
format-bluetooth-muted = ''{icon} {format_source}'';
|
||||
format-muted = ''{format_source}'';
|
||||
format-source = ''{volume}% '';
|
||||
format-source-muted = '' '';
|
||||
format-icons = {
|
||||
headphone = '' '';
|
||||
hands-free = '' '';
|
||||
headset = '' '';
|
||||
phone = '' '';
|
||||
portable = '' '';
|
||||
car = '' '';
|
||||
default = [ "" " " " " ];
|
||||
};
|
||||
on-click = ''pavucontrol'';
|
||||
};
|
||||
"custom/power" = {
|
||||
format = ''⏻ '';
|
||||
tooltip = false;
|
||||
menu = "on-click";
|
||||
menu-file = ''$HOME/.config/waybar/power_menu.xml'';
|
||||
menu-actions = {
|
||||
shutdown = "shutdown";
|
||||
reboot = "reboot";
|
||||
suspend = "systemctl suspend";
|
||||
hibernate = "systemctl hibernate";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# We want Stylix to do most of the heavy lifting for our styling,
|
||||
# but we want to add a few snippets. So we're going to run waybar
|
||||
# with '-c ~/.config/waybar/waybar.css', which will add our snippets
|
||||
# and then source the original, default '~/.config/waybar/style.css'
|
||||
# created by Stylix.
|
||||
# home.file."waybar.css" = {
|
||||
# target = ".config/waybar/waybar.css";
|
||||
# source = ./waybar.css;
|
||||
# };
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show = "drun";
|
||||
width = "40%";
|
||||
height = "20%";
|
||||
allow_markup = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,128 +0,0 @@
|
||||
{ pkgs, vars, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
ssh-to-age
|
||||
pinentry-all
|
||||
( writeShellApplication {
|
||||
name = "keyman";
|
||||
runtimeInputs = [];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
# Fuck GPG. Miserable UX.
|
||||
|
||||
id="joey@jafner.net"
|
||||
device="desktop"
|
||||
homedir="/home/${vars.user.username}/.gpg"
|
||||
backupdir="/home/${vars.user.username}/.keys"
|
||||
mkdir -p "$homedir" "$backupdir"
|
||||
|
||||
getPrimaryKeyFingerprint() {
|
||||
return "$(gpg --list-keys | grep fingerprint | tr -s ' ' | cut -d'=' -f2 | xargs)"
|
||||
}
|
||||
|
||||
bootstrap() {
|
||||
gpg --quick-generate-key 'Joey Hafner <joey@jafner.net>' ed25519 cert 0
|
||||
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" ed25519 sign 0
|
||||
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" cv25519 encrypt 0
|
||||
}
|
||||
|
||||
lockPrimary() {
|
||||
gpg -a --export-secret-key "$(getPrimaryKeyFingerprint)" > "$backupdir/$id.primary.gpg"
|
||||
gpg -a --export "$(getPrimaryKeyFingerprint)" > "$backupdir/$id.primary.gpg.pub"
|
||||
gpg -a --export-secret-subkeys "$(getPrimaryKeyFingerprint)" > "/tmp/subkeys.gpg"
|
||||
gpg --delete-secret-subkeys "$(getPrimaryKeyFingerprint)"
|
||||
gpg --import "/tmp/subkeys.gpg" && rm "/tmp/subkeys.gpg"
|
||||
}
|
||||
|
||||
unlockPrimary() {
|
||||
gpg --import "$backupdir/$id.primary.gpg"
|
||||
if gpg --list-secret-keys | grep -q sec#; then
|
||||
echo "Unlocked primary key $backupdir/$id.primary.gpg"
|
||||
else
|
||||
echo "Failed to unlock primary key $backupdir/$id.primary.gpg"
|
||||
fi
|
||||
}
|
||||
|
||||
initNewDevice() {
|
||||
stty icrnl
|
||||
unlockPrimary
|
||||
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" ed25519 sign 0
|
||||
if [[ $(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]") -gt 1 ]]; then
|
||||
echo "More than one loaded signing key is listed for today's date. Please select one:"
|
||||
while read -r key; do
|
||||
key_list+=( "$key" )
|
||||
done< <(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]")
|
||||
select key in "''$''\{key_list[@]}"; do
|
||||
SUBKEY_FINGERPRINT=$(echo "$key" | cut -d'/' -f2 | cut -d' ' -f1)
|
||||
export SUBKEY_FINGERPRINT
|
||||
echo "Subkey fingerprint: $SUBKEY_FINGERPRINT"
|
||||
break
|
||||
done
|
||||
else
|
||||
SUBKEY_FINGERPRINT=$(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]" | cut -d'/' -f2 | cut -d' ' -f1 | head -1)
|
||||
export SUBKEY_FINGERPRINT
|
||||
fi
|
||||
gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]"
|
||||
gpg -a --export-secret-key "$SUBKEY_FINGERPRINT" > "$backupdir/$id.$device.gpg"
|
||||
gpg -a --export "$SUBKEY_FINGERPRINT" > "$backupdir/$id.$device.gpg.pub"
|
||||
|
||||
lockPrimary
|
||||
}
|
||||
|
||||
"$@" || declare -F
|
||||
|
||||
'';
|
||||
} )
|
||||
];
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = "/home/${vars.user.username}/.gpg";
|
||||
mutableKeys = true;
|
||||
mutableTrust = true;
|
||||
publicKeys = [ ];
|
||||
};
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
enableScDaemon = false;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
};
|
||||
|
||||
home.file = {
|
||||
"profiles" = {
|
||||
target = ".ssh/profiles";
|
||||
text = ''
|
||||
admin@192.168.1.31
|
||||
admin@192.168.1.32
|
||||
admin@192.168.1.33
|
||||
admin@192.168.1.10
|
||||
admin@192.168.1.11
|
||||
admin@192.168.1.12
|
||||
vyos@192.168.1.1
|
||||
admin@192.168.1.23
|
||||
admin@143.110.151.123
|
||||
'';
|
||||
};
|
||||
"config" = {
|
||||
target = ".ssh/config";
|
||||
text = ''
|
||||
Host *
|
||||
ForwardAgent yes
|
||||
IdentityFile ~/.ssh/${vars.desktop.sshKey}
|
||||
'';
|
||||
};
|
||||
"authorized_keys" = {
|
||||
target = ".ssh/authorized_keys";
|
||||
text = ''
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB9guFiLtbnUn93C3fBggGFyPqR3/5pPKrVTtuGL/dcP joey@pixel
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFzxkV2KZDEUKddI2sbgpQkYFazRSmt/XfzVhcHHDGso joey@joey-laptop
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# Configure Sops key
|
||||
home.sessionVariables = {
|
||||
SOPS_AGE_KEY_FILE = "/home/${vars.user.username}/Git/Jafner.net/.sops/${vars.user.username}.author.key";
|
||||
};
|
||||
}
|
@ -1,207 +0,0 @@
|
||||
{ ... }: {
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
settingsPerApplication = {};
|
||||
};
|
||||
home.file."MyConfig.conf" = {
|
||||
enable = true;
|
||||
target = ".config/MangoHud/MyConfig.conf";
|
||||
text = ''
|
||||
# FPS Limit
|
||||
fps_limit=240,0
|
||||
fps_limit_method=late
|
||||
# Software Information
|
||||
## FPS
|
||||
fps=0
|
||||
fps_color_change=0
|
||||
fps_text=
|
||||
fps_value=59,239
|
||||
fps_metrics=0
|
||||
|
||||
## Frame Times
|
||||
frame_timing=1
|
||||
frame_timing_detailed=0
|
||||
dynamic_frame_timing=1
|
||||
frametime=0
|
||||
histogram=1
|
||||
show_fps_limit=0
|
||||
|
||||
## Environment
|
||||
gamemode=0
|
||||
present_mode=0
|
||||
vulkan_driver=0
|
||||
engine_version=0
|
||||
engine_short_names=0
|
||||
exec_name=0
|
||||
vkbasalt=0
|
||||
wine=0
|
||||
winesync=0
|
||||
|
||||
# Info: CPU
|
||||
cpu_text=
|
||||
cpu_stats=0
|
||||
core_load=0
|
||||
core_bars=0
|
||||
cpu_power=0
|
||||
cpu_temp=0
|
||||
|
||||
# Info: GPU
|
||||
gpu_text=
|
||||
gpu_stats=0
|
||||
gpu_power=0
|
||||
gpu_temp=0
|
||||
gpu_core_clock=0
|
||||
gpu_mem_clock=0
|
||||
gpu_fan=0
|
||||
gpu_voltage=0
|
||||
throttling_status=0
|
||||
throttling_status_graph=0
|
||||
|
||||
# Info: Memory
|
||||
procmem=0
|
||||
procmem_shared=0
|
||||
procmem_virt=0
|
||||
ram=0
|
||||
vram=0
|
||||
swap=0
|
||||
|
||||
# Info: Network
|
||||
network=0
|
||||
|
||||
# Info: Other
|
||||
time=0
|
||||
time_format=%r
|
||||
time_no_label=1
|
||||
|
||||
graphs=
|
||||
|
||||
# Keybindings
|
||||
toggle_hud=Shift_R+F12
|
||||
toggle_logging=Shift_L+F2
|
||||
toggle_hud_position=R_Shift+F11
|
||||
toggle_preset=Shift_R+F10
|
||||
toggle_fps_limit=Shift_L+F1
|
||||
reload_cfg=Shift_L+F4
|
||||
upload_log=Shift_L+F3
|
||||
reset_fps_metrics=Shift_R+f9
|
||||
|
||||
# Orientation: positioning, size, arrangement
|
||||
width=240
|
||||
table_columns=2
|
||||
offset_x=3
|
||||
offset_y=24
|
||||
position=top-left
|
||||
legacy_layout=1
|
||||
height=0
|
||||
horizontal=0
|
||||
horizontal_stretch=0
|
||||
hud_compact=0
|
||||
hud_no_margin=1
|
||||
cellpadding_y=0
|
||||
round_corners=10
|
||||
|
||||
alpha=1.000000
|
||||
background_alpha=1.00000
|
||||
|
||||
# Text: Font, colors, etc.
|
||||
font_scale=1.0
|
||||
font_size=24
|
||||
font_size_text=24
|
||||
no_small_font=0
|
||||
|
||||
text_color=cdd6f4
|
||||
text_outline=1
|
||||
text_outline_thickness=1
|
||||
text_outline_color=#1e1e2e
|
||||
|
||||
frametime_color=b2bedc
|
||||
frametime_text_color=
|
||||
background_color=1d253a
|
||||
|
||||
battery_color=ff0000#585b70
|
||||
engine_color=cdd6f4
|
||||
cpu_color=89b4fa
|
||||
cpu_load_color=a6e3a1, f9e2af, f38ba8
|
||||
io_color=f9e2af
|
||||
media_player_color=cdd6f4
|
||||
gpu_color=a6e3a1
|
||||
gpu_load_color=a6e3a1, f9e2af, f38ba8
|
||||
fps_color=a6e3a1, f9e2af, f38ba8
|
||||
wine_color=cba6f7
|
||||
vram_color=94e2d5
|
||||
'';
|
||||
};
|
||||
home.file."presets.conf" = {
|
||||
target = ".config/MangoHud/presets.conf";
|
||||
text = ''
|
||||
[preset 1] # Frame data
|
||||
fps=1
|
||||
fps_color_change=1
|
||||
fps_text=
|
||||
fps_value=59,239
|
||||
fps_metrics=avg,0.01
|
||||
|
||||
frame_timing=1
|
||||
frame_timing_detailed=1
|
||||
dynamic_frame_timing=1
|
||||
frametime=1
|
||||
histogram=1
|
||||
|
||||
show_fps_limit=1
|
||||
|
||||
[preset 2] # CPU info
|
||||
cpu_text=5700X
|
||||
cpu_stats=1
|
||||
core_load=1
|
||||
core_bars=1
|
||||
cpu_power=0
|
||||
cpu_temp=1
|
||||
|
||||
[preset 3] # GPU info
|
||||
gpu_text=7900 XTX
|
||||
gpu_stats=1
|
||||
gpu_power=1
|
||||
gpu_temp=1
|
||||
gpu_core_clock=1
|
||||
gpu_mem_clock=1
|
||||
gpu_fan=1
|
||||
gpu_voltage=1
|
||||
throttling_status=1
|
||||
throttling_status_graph=1
|
||||
|
||||
[preset 4] # Memory info
|
||||
procmem=1
|
||||
procmem_shared=1
|
||||
procmem_virt=1
|
||||
ram=1
|
||||
vram=1
|
||||
swap=1
|
||||
|
||||
[preset 5] # Network info
|
||||
network=enp4s0f0
|
||||
|
||||
[preset 6] # Environment info
|
||||
gamemode=1
|
||||
present_mode=1
|
||||
vulkan_driver=1
|
||||
engine_version=1
|
||||
engine_short_names=1
|
||||
exec_name=1
|
||||
vkbasalt=1
|
||||
wine=1
|
||||
winesync=1
|
||||
|
||||
[preset 7]
|
||||
no_display=1
|
||||
'';
|
||||
};
|
||||
home.sessionVariables = {
|
||||
MANGOHUD_CONFIGFILE = "$XDG_CONFIG_HOME/MangoHud/MyConfig.conf";
|
||||
MANGOHUD_PRESETSFILE = "$XDG_CONFIG_HOME/MangoHud/presets.conf";
|
||||
};
|
||||
}
|
||||
|
||||
# OW HUD background: #1d253a
|
||||
# OW HUD text: #b2bedc
|
||||
# cat ~/.config/MangoHud/MangoHud.conf
|
@ -1,7 +0,0 @@
|
||||
{ ... }: {
|
||||
nixGL = {
|
||||
vulkan.enable = true;
|
||||
defaultWrapper = "mesa";
|
||||
installScripts = [ "mesa" ];
|
||||
};
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ base16-schemes ];
|
||||
# Use the following before running a switch to prevent clobbering:
|
||||
# rm ~/.gtkrc-2.0 ~/.config/gtk-3.0/settings.ini ~/.config/gtk-3.0/gtk.css ~/.config/gtk-4.0/settings.ini ~/.config/gtk-4.0/gtk.css
|
||||
# if one run with backups has already been done, clean it up with:
|
||||
# rm ~/.gtkrc-2.0.backup ~/.config/gtk-3.0/settings.ini.backup ~/.config/gtk-3.0/gtk.css.backup ~/.config/gtk-4.0/settings.ini.backup ~/.config/gtk-4.0/gtk.css.backup
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
polarity = "dark";
|
||||
#image = ./plasma6-2560x1440.png;
|
||||
image = ./romb-3840x2160.png;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
fonts = {
|
||||
sizes = {
|
||||
applications = 10;
|
||||
desktop = 10;
|
||||
popups = 10;
|
||||
terminal = 12;
|
||||
};
|
||||
monospace = {
|
||||
name = "DejaVu Sans Mono";
|
||||
package = pkgs.dejavu_fonts;
|
||||
};
|
||||
serif = {
|
||||
name = "DejaVu Serif";
|
||||
package = pkgs.dejavu_fonts;
|
||||
};
|
||||
sansSerif = {
|
||||
name = "DejaVu Sans";
|
||||
package = pkgs.dejavu_fonts;
|
||||
};
|
||||
emoji = {
|
||||
name = "Noto Color Emoji";
|
||||
package = pkgs.noto-fonts-color-emoji;
|
||||
};
|
||||
};
|
||||
targets = {
|
||||
bat.enable = true;
|
||||
btop.enable = true;
|
||||
firefox.enable = true;
|
||||
firefox.profileNames = [ "Default" ];
|
||||
fzf.enable = true;
|
||||
gnome.enable = true;
|
||||
gtk.enable = true;
|
||||
kde.enable = true;
|
||||
rofi.enable = true;
|
||||
vesktop.enable = true;
|
||||
vscode.enable = true;
|
||||
wofi.enable = true;
|
||||
#ghostty.enable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
# Use the following to get an ordered list of color codes from ~/.config/stylix/palette.json:
|
||||
#
|
||||
# cat ~/.config/stylix/palette.json | jq 'to_entries | .[] | select(.key | contains("base")) | .value'
|
||||
# To convert that to the format expected by [genix7000](https://github.com/cab404/genix7000):
|
||||
# sed 's/^"/"\\#/' | tr '\n' ' '
|
@ -1,56 +0,0 @@
|
||||
{ vars, ... }:
|
||||
{
|
||||
imports = [
|
||||
./configuration/stylix.nix
|
||||
./configuration/git.nix
|
||||
./configuration/keys.nix
|
||||
./configuration/defaultApps.nix
|
||||
./configuration/mangohud.nix
|
||||
|
||||
./apps/zed.nix
|
||||
./apps/browser.nix
|
||||
./apps/discord.nix
|
||||
./apps/obs-studio.nix
|
||||
./apps/terminal.nix
|
||||
./apps/vscode.nix
|
||||
./apps/iac-tools.nix
|
||||
./apps/minecraft.nix
|
||||
./apps/multimedia.nix
|
||||
./apps/obsidian.nix
|
||||
./apps/spotify.nix
|
||||
./apps/password-manager.nix
|
||||
./apps/email.nix
|
||||
./apps/emulators.nix
|
||||
./apps/ai.nix
|
||||
|
||||
./services/flatpak.nix
|
||||
./services/kdeconnect.nix
|
||||
./services/nextcloud.nix
|
||||
./services/protonmail.nix
|
||||
./services/goxlr-utility.nix
|
||||
#./services/syncthing.nix
|
||||
|
||||
./scripts/ffmpeg.nix
|
||||
./scripts/nixos.nix
|
||||
./scripts/obs-toggle-recording.nix
|
||||
];
|
||||
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [
|
||||
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
|
||||
];
|
||||
};
|
||||
|
||||
home.enableNixpkgsReleaseCheck = false;
|
||||
home.preferXdgDirectories = true;
|
||||
home.username = "${vars.user.username}";
|
||||
home.homeDirectory = "/home/${vars.user.username}";
|
||||
home.stateVersion = "24.11";
|
||||
home.sessionVariables = { };
|
||||
programs.home-manager.enable = true;
|
||||
xdg.systemDirs.data = [
|
||||
"/usr/share"
|
||||
];
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
ffmpeg-full
|
||||
libnotify
|
||||
( writeShellApplication {
|
||||
name = "convert-for-discord"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
|
||||
runtimeInputs = [
|
||||
libnotify
|
||||
ffmpeg-full
|
||||
];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
INPUT_FILE=$(realpath "$1")
|
||||
FILE_PATH=$(dirname "$INPUT_FILE")
|
||||
FILE_NAME=$(basename "$INPUT_FILE")
|
||||
#FILE_EXT="''$''\{FILE_NAME##*.}"
|
||||
FILE_NAME="''$''\{FILE_NAME%.*}"
|
||||
OUTFILE="$FILE_PATH/$FILE_NAME.mp4"
|
||||
|
||||
# Actual transcoding happens here:
|
||||
notify-send -t 2000 "Transcode starting" "$FILE_NAME"
|
||||
ffmpeg -hide_banner -vaapi_device /dev/dri/renderD128 -i "$INPUT_FILE" -map 0 -vf 'format=nv12,hwupload' -c:v h264_vaapi -b:v 8M -c:a copy "$OUTFILE"
|
||||
notify-send -t 4000 "Transcode complete" "$FILE_NAME"
|
||||
'';
|
||||
} )
|
||||
( writeShellApplication {
|
||||
name = "send-to-zipline"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
|
||||
runtimeInputs = [
|
||||
libnotify
|
||||
curl
|
||||
jq
|
||||
wl-clipboard
|
||||
wl-clip-persist
|
||||
];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
INPUT_FILE=$(realpath "$INPUT_FILE")
|
||||
FILE_NAME=$(basename "$INPUT_FILE")
|
||||
FILE_NAME="''$''\{FILE_NAME%.*}"
|
||||
|
||||
ZIPLINE_HOST_ROOT=https://zipline.jafner.net
|
||||
TOKEN=$(cat ~/.zipline-auth)
|
||||
LINK=$(curl \
|
||||
--header "authorization: $TOKEN" \
|
||||
$ZIPLINE_HOST_ROOT/api/upload -F "file=@$INPUT_FILE" \
|
||||
--header "Content-Type: multipart/form-data" \
|
||||
--header "Format: name" \
|
||||
--header "Embed: true" \
|
||||
--header "Original-Name: true")
|
||||
LINK=$(echo "$LINK" | jq -r .'files[0]')
|
||||
echo "[$FILE_NAME]($LINK)" | wl-copy
|
||||
notify-send -t 4000 "Zipline - Upload complete." "Link copied to clipboard: $LINK"
|
||||
'';
|
||||
} )
|
||||
];
|
||||
home.file."send-to-ffmpeg.desktop" = {
|
||||
target = ".local/share/kio/servicemenus/send-to-ffmpeg.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
ServiceTypes=KonqPopupMenu/Plugin
|
||||
MimeType=video/*;
|
||||
Icon=video-mp4
|
||||
X-KDE-Submenu=Run script...
|
||||
Actions=convertForDiscord;sendToZipline
|
||||
|
||||
[Desktop Action convertForDiscord]
|
||||
Name=Convert for Discord
|
||||
Icon=video-mp4
|
||||
TryExec=ffmpeg
|
||||
Exec=file=%f; convert-for-discord "%f"
|
||||
|
||||
[Desktop Action sendToZipline]
|
||||
Name=Send to Zipline
|
||||
Icon=video-mp4
|
||||
TryExec=ffmpeg
|
||||
Exec=file=%f; send-to-zipline "%f"
|
||||
'';
|
||||
};
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
( writeShellApplication {
|
||||
name = "init-keys";
|
||||
runtimeInputs = [
|
||||
ssh-to-age
|
||||
];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
# Asserts all keys are where they belong.
|
||||
|
||||
assert() {
|
||||
TEST_FILE="$1"
|
||||
FILE_HASH="$2"
|
||||
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "Error: Missing file $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEST_HASH="$(sha256sum "$TEST_FILE" | cut -d' ' -f1)"
|
||||
if [ ! "$HASH" == "$FILE_HASH" ]; then
|
||||
echo "Error: File hash mismatch $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
'';
|
||||
} )
|
||||
];
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
( writeShellApplication {
|
||||
name = "nixos";
|
||||
runtimeInputs = [
|
||||
libnotify
|
||||
jq
|
||||
git
|
||||
];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
|
||||
FLAKE_DIR="$HOME/Git/Jafner.net/dotfiles/"
|
||||
CURRENT_CONFIGURATION="desktop"
|
||||
cd "$FLAKE_DIR"
|
||||
|
||||
handleUntracked() {
|
||||
UNTRACKED=$(git ls-files -o --directory --exclude-standard --no-empty-directory)
|
||||
if [[ $(echo "$UNTRACKED" | wc -l) -gt 0 ]]; then
|
||||
git add -A
|
||||
notify-send "Adding untracked files" "$UNTRACKED"
|
||||
fi
|
||||
}
|
||||
|
||||
rebuild() {
|
||||
notify-send "Beginning rebuild"
|
||||
sudo nixos-rebuild switch \
|
||||
--flake ".#$CURRENT_CONFIGURATION" \
|
||||
--impure \
|
||||
--show-trace &&\
|
||||
notify-send "Rebuilt successfully"
|
||||
}
|
||||
|
||||
update() {
|
||||
notify-send "Beginning update" "Updating lockfile $FLAKE_DIR/flake.lock"
|
||||
nix flake update --flake "$FLAKE_DIR"
|
||||
notify-send "Update complete" "Finished updating lockfile $FLAKE_DIR/flake.lock"
|
||||
}
|
||||
|
||||
finish() {
|
||||
mkdir -p "$HOME/.nixos"
|
||||
nixos-rebuild list-generations --json > "$HOME/.nixos/nixos-generations.json"
|
||||
}
|
||||
|
||||
error() {
|
||||
notify-send "Nixos Script Error" "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
rebuild) handleUntracked && rebuild && finish;;
|
||||
update) handleUntracked && update && finish;;
|
||||
*) error "Unrecognized subcommand $1";;
|
||||
esac
|
||||
'';
|
||||
} )
|
||||
];
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
### Python script that uses OBS-Studio's websocket to toggle recording when a hotkey is pressed.
|
||||
( writers.writePython3Bin "obs-toggle-recording" {
|
||||
libraries = [
|
||||
( python312Packages.buildPythonPackage {
|
||||
pname = "obsws_python";
|
||||
version = "1.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/22/29/dcb5286c9301eee8b72aee1e997761fb2cca9bf963fcd373acdfca353af3/obsws_python-1.7.0-py3-none-any.whl";
|
||||
sha256 = "0jvqfvqgvqjsv0jsddj51m4wrinbrc2gbymmnmv9kfarfj7ly7g7";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [];
|
||||
checkInputs = [];
|
||||
nativeBuildInputs = [];
|
||||
propagatedBuildInputs = [
|
||||
( python312Packages.buildPythonPackage {
|
||||
pname = "tomli";
|
||||
version = "2.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl";
|
||||
sha256 = "0f5ar8vfq7lkydj19am5ymxg11d00ql0kv5hj3v07lskbi429gif";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [];
|
||||
checkInputs = [];
|
||||
nativeBuildInputs = [];
|
||||
propagatedBuildInputs = [];
|
||||
} )
|
||||
( python312Packages.buildPythonPackage {
|
||||
pname = "websocket-client";
|
||||
version = "1.8.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl";
|
||||
sha256 = "09m5pwwi4bbwdv2vdhlc5k0737kskhnxyb5j17l9ii7mjz4lrd0p";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [];
|
||||
checkInputs = [];
|
||||
nativeBuildInputs = [];
|
||||
propagatedBuildInputs = [];
|
||||
} )
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
} ''
|
||||
import obsws_python as obs
|
||||
client = obs.ReqClient(host='localhost', port=4455)
|
||||
recording_status = client.get_record_status()
|
||||
active = recording_status.output_active
|
||||
paused = recording_status.output_paused
|
||||
|
||||
if not active:
|
||||
client.start_record()
|
||||
else:
|
||||
client.toggle_record_pause()
|
||||
'' )
|
||||
];
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [
|
||||
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
|
||||
];
|
||||
packages = [ ];
|
||||
};
|
||||
home.packages = with pkgs; [ flatpak ];
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
goxlr-utility
|
||||
];
|
||||
systemd.user.services = {
|
||||
goxlr-utility = {
|
||||
Unit = {
|
||||
Description = "Unofficial GoXLR App replacement for Linux, Windows and MacOS";
|
||||
Documentation = [ "https://github.com/GoXLR-on-Linux/goxlr-utility" ];
|
||||
};
|
||||
Service = {
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
ExecStart = "${pkgs.goxlr-utility}/bin/goxlr-daemon";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.kdeconnect-kde
|
||||
];
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ nextcloud-client ];
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
protonmail-bridge-gui
|
||||
];
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ ... }: {
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
tray = true;
|
||||
};
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
rofi-rbw-wayland
|
||||
rbw
|
||||
pinentry-rofi
|
||||
pinentry-all
|
||||
];
|
||||
home.file = {
|
||||
rbw-config = {
|
||||
target = ".config/rbw/config.json";
|
||||
text = ''
|
||||
{
|
||||
"email": "jafner425@gmail.com",
|
||||
"sso_id": null,
|
||||
"base_url": "https://bitwarden.jafner.tools",
|
||||
"identity_url": null,
|
||||
"ui_url": null,
|
||||
"notifications_url": null,
|
||||
"lock_timeout": 3600,
|
||||
"sync_interval": 3600,
|
||||
"pinentry": "pinentry-curses",
|
||||
"client_cert_path": null
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.flatpak.packages = [
|
||||
{ appId = "io.github.zen_browser.zen"; origin = "flathub"; }
|
||||
];
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ flatpak ];
|
||||
services.flatpak.enable = true;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
(wineWowPackages.full.override {
|
||||
wineRelease = "staging";
|
||||
mingwSupport = true;
|
||||
})
|
||||
winetricks
|
||||
];
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{ vars, ... }:
|
||||
{
|
||||
## Git
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "${vars.user.realname}";
|
||||
userEmail = "${vars.user.email}";
|
||||
extraConfig = {
|
||||
core.sshCommand = "ssh -i /home/joey/.ssh/${vars.user.username}@${vars.laptop.hostname}";
|
||||
};
|
||||
delta.enable = true;
|
||||
delta.options = {
|
||||
side-by-side = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
k3s
|
||||
kubernetes-helm
|
||||
helmfile-wrapped ];
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ vlc feh ];
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ vesktop ];
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
## OBS-Studio
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
obs-vaapi
|
||||
obs-vkcapture
|
||||
input-overlay
|
||||
];
|
||||
};
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
shortcuts = {
|
||||
"kwin"."Show Desktop" = "Meta+D";
|
||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
"kwin"."Switch Window Down" = "Meta+Alt+Down";
|
||||
"kwin"."Switch Window Left" = "Meta+Alt+Left";
|
||||
"kwin"."Switch Window Right" = "Meta+Alt+Right";
|
||||
"kwin"."Switch Window Up" = "Meta+Alt+Up";
|
||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
"kwin"."Walk Through Windows of Current Application" = "Alt+`";
|
||||
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||
"kwin"."Window Close" = "Alt+F4";
|
||||
"kwin"."Window Fullscreen" = "Meta+F";
|
||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
|
||||
"kwin"."Window Quick Tile Left" = "Meta+Left";
|
||||
"kwin"."Window Quick Tile Right" = "Meta+Right";
|
||||
"kwin"."Window Quick Tile Top" = "Meta+Up";
|
||||
"kwin"."view_actual_size" = "Meta+0";
|
||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
|
||||
"kwin"."view_zoom_out" = "Meta+-";
|
||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Hibernate" = "Hibernate";
|
||||
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||
"org_kde_powerdevil"."PowerDown" = "Power Down";
|
||||
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
||||
};
|
||||
configFile = {
|
||||
"kcminputrc"."Libinput/1739/30382/DLL0704:01 06CB:76AE Mouse"."NaturalScroll" = true;
|
||||
"kded5rc"."Module-device_automounter"."autoload" = false;
|
||||
"kwinrulesrc"."1"."Description" = "Start Kitty fullscreen";
|
||||
"kwinrulesrc"."1"."desktops" = "8174df23-1d2f-4d61-aef3-9b44ed596ed4";
|
||||
"kwinrulesrc"."1"."desktopsrule" = 3;
|
||||
"kwinrulesrc"."1"."fullscreenrule" = 3;
|
||||
"kwinrulesrc"."1"."wmclass" = "kitty";
|
||||
"kwinrulesrc"."1"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."2"."Description" = "Start Zen Browser fullscreen";
|
||||
"kwinrulesrc"."2"."desktops" = "ff42d652-e597-4e3c-9eb7-0cb2f5124dfe";
|
||||
"kwinrulesrc"."2"."desktopsrule" = 3;
|
||||
"kwinrulesrc"."2"."fullscreen" = true;
|
||||
"kwinrulesrc"."2"."fullscreenrule" = 3;
|
||||
"kwinrulesrc"."2"."title" = "Zen Browser";
|
||||
"kwinrulesrc"."2"."wmclass" = "zen-alpha";
|
||||
"kwinrulesrc"."2"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."3"."Description" = "Start Vesktop fullscreen";
|
||||
"kwinrulesrc"."3"."desktopsrule" = 3;
|
||||
"kwinrulesrc"."3"."fullscreenrule" = 3;
|
||||
"kwinrulesrc"."3"."wmclass" = "vesktop";
|
||||
"kwinrulesrc"."3"."wmclassmatch" = 1;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,120 +0,0 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
|
||||
{
|
||||
# Terminal
|
||||
## Kitty
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
## Tmux
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
newSession = true;
|
||||
shell = "$HOME/.nix-profile/bin/zsh";
|
||||
};
|
||||
|
||||
# Shell
|
||||
## Zsh
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
dotDir = ".config/zsh";
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
shellAliases = {
|
||||
bat = "bat --paging=never --color=always";
|
||||
fd = "fd -Lu";
|
||||
ls = "eza";
|
||||
lt = "eza --tree";
|
||||
fetch = "fastfetch";
|
||||
neofetch = "fetch";
|
||||
find = ''fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'';
|
||||
nu = "sudo nixos-rebuild switch --flake ~/Jafner.net/nix";
|
||||
hmu = "home-manager switch -b bak --flake ~/Jafner.net/nix";
|
||||
ngls = "nix-env --profile /nix/var/nix/profiles/system --list-generations";
|
||||
ngclean = "nix-collect-garbage --delete-old";
|
||||
ngcleanboot = "/run/current-system/bin/switch-to-configuration boot";
|
||||
};
|
||||
history = {
|
||||
share = true;
|
||||
save = 10000;
|
||||
size = 10000;
|
||||
expireDuplicatesFirst = false;
|
||||
extended = false;
|
||||
ignoreAllDups = false;
|
||||
ignoreDups = true;
|
||||
};
|
||||
initExtra = ''
|
||||
bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow
|
||||
bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow
|
||||
bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow
|
||||
bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow
|
||||
bindkey '^[[H' beginning-of-line # Home
|
||||
bindkey '^[[F' end-of-line # End
|
||||
bindkey '^[w' kill-region # Delete
|
||||
bindkey '^I^I' autosuggest-accept # Tab, Tab
|
||||
bindkey '^[' autosuggest-clear # Esc
|
||||
_fzf_compgen_path() {
|
||||
fd --hidden --exclude .git . "$1"
|
||||
}
|
||||
_fzf_compgen_dir() {
|
||||
fd --hidden --exclude .git . "$1"
|
||||
}
|
||||
eval "$(~/.nix-profile/bin/fzf --zsh)"
|
||||
source ${pkgs.fzf-git-sh}/share/fzf-git-sh/fzf-git.sh
|
||||
'';
|
||||
};
|
||||
|
||||
# CLI Utilities
|
||||
home.packages = with pkgs; [
|
||||
fastfetch
|
||||
tree btop
|
||||
bat fd eza fzf-git-sh
|
||||
wl-clipboard
|
||||
killall
|
||||
pkgs-unstable.fzf
|
||||
];
|
||||
|
||||
## eza
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
git = true;
|
||||
extraOptions = [
|
||||
"--color=always"
|
||||
"--long"
|
||||
"--icons=always"
|
||||
"--no-time"
|
||||
"--no-user"
|
||||
];
|
||||
};
|
||||
|
||||
## vim
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
copyindent = true;
|
||||
relativenumber = true;
|
||||
expandtab = true;
|
||||
tabstop = 2;
|
||||
};
|
||||
extraConfig = ''
|
||||
set nocompatible
|
||||
filetype on
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
syntax on
|
||||
set cursorline
|
||||
set wildmenu
|
||||
set wildmode=list:longest
|
||||
'';
|
||||
};
|
||||
|
||||
## fzf
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.fzf;
|
||||
};
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
## Nix LSP
|
||||
home.packages = with pkgs; [ nixd ];
|
||||
## VSCodium
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
mutableExtensionsDir = true;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
continue.continue
|
||||
];
|
||||
userSettings = {
|
||||
"nix.serverPath" = "nixd";
|
||||
"nix.enableLanguageServer" = true;
|
||||
"explorer.confirmDragAndDrop" = false;
|
||||
"workbench.colorTheme" = "Stylix";
|
||||
"git.autofetch" = true;
|
||||
"git.confirmSync" = false;
|
||||
"editor.fontFamily" = lib.mkForce "'Symbols Nerd Font Mono', 'PowerlineSymbols', 'DejaVu Sans Mono'";
|
||||
"git.enableSmartCommit" = true;
|
||||
"security.workspace.trust.untrustedFiles" = "open";
|
||||
};
|
||||
userTasks = {
|
||||
version = "2.0.0";
|
||||
tasks = [
|
||||
{
|
||||
type = "shell";
|
||||
label = "NixOS Rebuild Switch";
|
||||
command = "sudo nixos-rebuild switch --flake ~/Jafner.net/nix";
|
||||
problemMatcher = [];
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
label = "Home-Manager Switch";
|
||||
command = "home-manager switch -b bak --flake ~/Jafner.net/nix";
|
||||
problemMatcher = [];
|
||||
}
|
||||
{
|
||||
label = "System Rebuild";
|
||||
dependsOn = ["NixOS Rebuild Switch" "Home-Manager Switch" ];
|
||||
dependsOrder = "sequence";
|
||||
problemMatcher = [];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ inputs, ... }: {
|
||||
home.packages = [
|
||||
inputs.nix-ecuflash.packages."x86_64-linux".ecuflash
|
||||
];
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
{ pkgs, vars, ... }:
|
||||
|
||||
{
|
||||
home.stateVersion = "24.05";
|
||||
home.username = "${vars.user.username}";
|
||||
home.homeDirectory = "/home/${vars.user.username}";
|
||||
|
||||
imports = [
|
||||
./style.nix
|
||||
./app/wine/wine.nix
|
||||
./app/browser/zen.nix
|
||||
./app/flatpak/flatpak.nix
|
||||
./app/git/git.nix
|
||||
./app/games/games.nix
|
||||
./app/media/media.nix
|
||||
./app/messaging/discord.nix
|
||||
./app/obs-studio/obs-studio.nix
|
||||
./app/bitwarden/bitwarden.nix
|
||||
./app/sh/sh.nix # Consider splitting out to "terminal", "shell", and "cmd" or similar
|
||||
./app/vscode/vscode.nix # Consider using a generalized "IDE" or "Editor" folder.
|
||||
./wm/hyprland/wm.nix
|
||||
];
|
||||
|
||||
# Desktop apps
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
kdePackages.kdeconnect-kde
|
||||
nix-prefetch
|
||||
];
|
||||
programs.home-manager = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
{ pkgs, vars, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ base16-schemes ];
|
||||
## Stylix
|
||||
imports = [ ./themes/${vars.laptop.theme}/theme.nix ];
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
polarity = "dark";
|
||||
targets = {
|
||||
wofi.enable = true;
|
||||
waybar = {
|
||||
enableLeftBackColors = true;
|
||||
enableCenterBackColors = true;
|
||||
enableRightBackColors = true;
|
||||
};
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
name = "DejaVu Sans Mono";
|
||||
package = pkgs.dejavu_fonts;
|
||||
};
|
||||
serif = {
|
||||
name = "DejaVu Serif";
|
||||
package = pkgs.dejavu_fonts;
|
||||
};
|
||||
sansSerif = {
|
||||
name = "DejaVu Sans";
|
||||
package = pkgs.dejavu_fonts;
|
||||
};
|
||||
emoji = {
|
||||
name = "Noto Color Emoji";
|
||||
package = pkgs.noto-fonts-color-emoji;
|
||||
};
|
||||
sizes = {
|
||||
terminal = 14;
|
||||
applications = 12;
|
||||
popups = 12;
|
||||
desktop = 12;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./wallpaper.png;
|
||||
override = { base01 = "332330"; };
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 9.6 MiB |
@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731794.png"; sha256 = "1n0l1v0hfna5378zdfazvhq1np8x1wgjcmfnphxj4vjb48gkzmjk"; };
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
|
||||
};
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731826.png"; sha256 = "07cq8vvi25h8wp21jgmj1yw3w4674khxcjb6c8vgybi94ikjqcyv"; };
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
|
||||
};
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./blue-material.jpg;
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 50 KiB |
@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./red-black-material.jpg;
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 47 KiB |
@ -1,25 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./wallpaper.jpg;
|
||||
override = { base01 = "332330"; };
|
||||
};
|
||||
}
|
||||
|
||||
# Generated Colors
|
||||
# base00: #111349; /* Black */
|
||||
# base01: #2c4482; /* Bright Black */
|
||||
# base02: #156eb2; /* Grey */
|
||||
# base03: #66a3da; /* Brighter Grey */
|
||||
# base04: #95bede; /* Bright Grey */
|
||||
# base05: #e2e1ef; /* White */
|
||||
# base06: #e0e3f4; /* Brighter White */
|
||||
# base07: #cce8f6; /* Bright White */
|
||||
# base08: #5196d1; /* Red */
|
||||
# base09: #5196cf; /* Orange */
|
||||
# base0A: #5796cc; /* Yellow */
|
||||
# base0B: #5595d3; /* Green */
|
||||
# base0C: #5896c9; /* Cyan */
|
||||
# base0D: #5795d0; /* Blue */
|
||||
# base0E: #4f96d8; /* Purple */
|
||||
# base0F: #5894d3; /* Magenta */
|
Before Width: | Height: | Size: 53 KiB |
@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./wallpaper.jpg;
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 208 KiB |
@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./wallpaper.jpg;
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 62 KiB |
@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
stylix = {
|
||||
image = ./temple.png;
|
||||
override = { base01 = "332330"; };
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 1.2 MiB |
@ -1,139 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
plugins = [];
|
||||
settings = {
|
||||
monitor = ",1920x1080@60,0x0,1";
|
||||
# Declare default applications
|
||||
"$terminal" = "kitty";
|
||||
"$terminalFloating" = "kitty --class floating --override remember_window_size=false --override initial_window_height=720 --override initial_window_width=1280";
|
||||
"$fileManager" = "dolphin";
|
||||
"$browser" = "flatpak run io.github.zen_browser.zen";
|
||||
"$bar" = "killall .waybar-wrapped; waybar"; #"$bar" = "killall .waybar-wrapped; waybar --style ~/.config/waybar/waybar.css";
|
||||
"$menu" = "wofi --show drun";
|
||||
"$notifd" = "mako";
|
||||
"$wallpaperd" = "swww-daemon";
|
||||
"$network" = "nm-applet --indicator";
|
||||
"$screenshot" = "grimblast copy area";
|
||||
|
||||
# Scripted actions
|
||||
"$commandRebuildNix" = "$terminal sudo nixos-rebuild switch --flake ~/Jafner.net/nix && read";
|
||||
"$commandRebuildHomeManager" = "$terminal home-manager switch -b bak --flake ~/Jafner.net/nix && read";
|
||||
|
||||
exec-once = [
|
||||
"$terminal"
|
||||
"$bar"
|
||||
"$notifd"
|
||||
"$wallpaperd"
|
||||
"$network"
|
||||
];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
];
|
||||
|
||||
general = {
|
||||
gaps_in = "5";
|
||||
gaps_out = "20";
|
||||
border_size = "2";
|
||||
allow_tearing = false;
|
||||
resize_on_border = false;
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = "10";
|
||||
active_opacity = "1.0";
|
||||
inactive_opacity = "0.99";
|
||||
drop_shadow = true;
|
||||
shadow_range = "4";
|
||||
shadow_render_power = "3";
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = "3";
|
||||
passes = "1";
|
||||
vibrancy = "0.1696";
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
animation = [
|
||||
"windows, 1, 7, myBezier"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = "0";
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
follow_mouse = "1";
|
||||
sensitivity = "0";
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
};
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = false;
|
||||
};
|
||||
|
||||
device = {
|
||||
name = "epic-mouse-v1";
|
||||
sensitivity = "-0.5";
|
||||
};
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
bind = [
|
||||
"$mainMod, T, exec, $terminalFloating"
|
||||
"$mainMod, Q, killactive,"
|
||||
"$mainMod, M, exit,"
|
||||
"$mainMod, E, exec, $fileManager"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, R, exec, $menu"
|
||||
"$mainMod, P, pseudo,"
|
||||
"$mainMod, J, togglesplit,"
|
||||
"$mainMod CTRL, S, exec, $screenshot"
|
||||
"$mainMod CTRL, Z, exec, $browser"
|
||||
"$mainMod CTRL ALT, N, exec, $commandRebuildNix"
|
||||
"$mainMod CTRL ALT, H, exec, $commandRebuildHomeManager"
|
||||
"$mainMod CTRL, P, exec, rofi-rbw"
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
"$mainMod CTRL, right, workspace, +1"
|
||||
"$mainMod CTRL, left, workspace, -1"
|
||||
"$mainMod CTRL SHIFT, right, movetoworkspace, +1"
|
||||
"$mainMod CTRL SHIFT, left, movetoworkspace, -1"
|
||||
"$mainMod CTRL, B, exec, $bar"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"suppressevent maximize, class:.*"
|
||||
"float, class:floating"
|
||||
"float, title:Network Connections"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -1,355 +0,0 @@
|
||||
/*
|
||||
* __ __ _ ____ _ _
|
||||
* \ \ / /_ _ _ _| |__ __ _ _ __ / ___|| |_ _ _| | ___
|
||||
* \ \ /\ / / _` | | | | '_ \ / _` | '__| \___ \| __| | | | |/ _ \
|
||||
* \ V V / (_| | |_| | |_) | (_| | | ___) | |_| |_| | | __/
|
||||
* \_/\_/ \__,_|\__, |_.__/ \__,_|_| |____/ \__|\__, |_|\___|
|
||||
* |___/ |___/
|
||||
*
|
||||
* by Stephan Raabe (2024)
|
||||
* -----------------------------------------------------
|
||||
*/
|
||||
|
||||
@define-color backgroundlight #FFFFFF;
|
||||
@define-color backgrounddark #FFFFFF;
|
||||
@define-color workspacesbackground1 #FFFFFF;
|
||||
@define-color workspacesbackground2 #CCCCCC;
|
||||
@define-color bordercolor #FFFFFF;
|
||||
@define-color textcolor1 #000000;
|
||||
@define-color textcolor2 #000000;
|
||||
@define-color textcolor3 #FFFFFF;
|
||||
@define-color iconcolor #FFFFFF;
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* General
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
* {
|
||||
font-family: "Fira Sans Semibold", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0,0,0,0.2);
|
||||
border-bottom: 0px solid #ffffff;
|
||||
/* color: #FFFFFF; */
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Workspaces
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#workspaces {
|
||||
margin: 5px 1px 6px 1px;
|
||||
padding: 0px 1px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
color: @textcolor1;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 5px;
|
||||
margin: 4px 3px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
color: @textcolor3;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @textcolor1;
|
||||
background: @workspacesbackground2;
|
||||
border-radius: 15px;
|
||||
min-width: 40px;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: @textcolor1;
|
||||
background: @workspacesbackground2;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Tooltips
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
tooltip {
|
||||
border-radius: 10px;
|
||||
background-color: @backgroundlight;
|
||||
opacity:0.8;
|
||||
padding:20px;
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @textcolor2;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Window
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#window {
|
||||
background: @backgroundlight;
|
||||
margin: 10px 15px 10px 0px;
|
||||
padding: 2px 10px 0px 10px;
|
||||
border-radius: 12px;
|
||||
color:@textcolor2;
|
||||
font-size:16px;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
window#waybar.empty #window {
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Taskbar
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#taskbar {
|
||||
background: @backgroundlight;
|
||||
margin: 6px 15px 6px 0px;
|
||||
padding:0px;
|
||||
border-radius: 15px;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
border: 3px solid @backgroundlight;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
margin:0;
|
||||
border-radius: 15px;
|
||||
padding: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Modules
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Custom Quicklinks
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#custom-browser,
|
||||
#custom-filemanager,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#battery,
|
||||
#custom-appmenu,
|
||||
#clock {
|
||||
margin-right: 20px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: @iconcolor;
|
||||
padding: 4px 10px 2px 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#custom-quicklink1,
|
||||
#custom-quicklink2,
|
||||
#custom-quicklink3,
|
||||
#custom-quicklink4,
|
||||
#custom-quicklink5,
|
||||
#custom-quicklink6,
|
||||
#custom-quicklink7,
|
||||
#custom-quicklink8,
|
||||
#custom-quicklink9,
|
||||
#custom-quicklink10 {
|
||||
padding:0px;
|
||||
margin-right: 7px;
|
||||
font-size:20px;
|
||||
color: @iconcolor;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Custom Modules
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#custom-appmenu {
|
||||
background-color: @backgrounddark;
|
||||
color: @textcolor1;
|
||||
border-radius: 15px;
|
||||
margin: 10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Custom Exit
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#custom-exit {
|
||||
margin: 2px 20px 0px 0px;
|
||||
padding:0px;
|
||||
font-size:20px;
|
||||
color: @iconcolor;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Hardware Group
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#disk,#memory,#cpu,#language {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
font-size:16px;
|
||||
color:@iconcolor;
|
||||
}
|
||||
|
||||
#language {
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Clock
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#clock {
|
||||
background-color: @backgrounddark;
|
||||
font-size: 16px;
|
||||
color: @textcolor1;
|
||||
border-radius: 15px;
|
||||
margin: 10px 7px 10px 0px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Pulseaudio
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#pulseaudio {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: @backgrounddark;
|
||||
color: @textcolor1;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Network
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#network {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#network.ethernet {
|
||||
background-color: @backgroundlight;
|
||||
color: @textcolor2;
|
||||
}
|
||||
|
||||
#network.wifi {
|
||||
background-color: @backgroundlight;
|
||||
color: @textcolor2;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Bluetooth
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#bluetooth, #bluetooth.on, #bluetooth.connected {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 15px 10px 0px;
|
||||
}
|
||||
|
||||
#bluetooth.off {
|
||||
background-color: transparent;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Battery
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#battery {
|
||||
background-color: @backgroundlight;
|
||||
font-size: 16px;
|
||||
color: @textcolor2;
|
||||
border-radius: 15px;
|
||||
margin: 10px 15px 10px 0px;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
color: @textcolor2;
|
||||
background-color: @backgroundlight;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: @backgroundlight;
|
||||
color: @textcolor2;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: @textcolor3;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Tray
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
#tray {
|
||||
margin:0px 10px 0px 0px;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* Other
|
||||
* ----------------------------------------------------- */
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
@ -1,355 +0,0 @@
|
||||
@import "style.css";
|
||||
|
||||
waybar#window {
|
||||
background-color: @base0B;
|
||||
}
|
||||
|
||||
@define-color base00 #111349;
|
||||
@define-color base01 #332330;
|
||||
@define-color base02 #156eb2;
|
||||
@define-color base03 #66a3da;
|
||||
@define-color base04 #95bede;
|
||||
@define-color base05 #e2e1ef;
|
||||
@define-color base06 #e0e3f4;
|
||||
@define-color base07 #cce8f6;
|
||||
@define-color base08 #5196d1;
|
||||
@define-color base09 #5196cf;
|
||||
@define-color base0A #5796cc;
|
||||
@define-color base0B #5595d3;
|
||||
@define-color base0C #5896c9;
|
||||
@define-color base0D #5795d0;
|
||||
@define-color base0E #4f96d8;
|
||||
@define-color base0F #5894d3;
|
||||
|
||||
* {
|
||||
font-family: "DejaVu Sans";
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
window#waybar, tooltip {
|
||||
background: alpha(@base00, 1.000000);
|
||||
color: @base05;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
border-color: @base0D;
|
||||
}
|
||||
#wireplumber,
|
||||
#pulseaudio,
|
||||
#sndio {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#wireplumber.muted,
|
||||
#pulseaudio.muted,
|
||||
#sndio.muted {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#upower,
|
||||
#battery {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#upower.charging,
|
||||
#battery.Charging {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#network {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#network.disconnected {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#user {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#clock {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#backlight {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#cpu {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#disk {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#idle_inhibitor {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#temperature {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#mpd {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#language {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#keyboard-state {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#memory {
|
||||
padding: 0 5px;
|
||||
}
|
||||
#window {
|
||||
padding: 0 5px;
|
||||
}
|
||||
window .modules-left #workspaces button {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #wireplumber,
|
||||
.modules-left #pulseaudio,
|
||||
.modules-left #sndio {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #workspaces button.focused,
|
||||
.modules-left #workspaces button.active {
|
||||
background: @base03;
|
||||
}
|
||||
.modules-left #workspaces button.urgent {
|
||||
background-color: @base08;
|
||||
}
|
||||
.modules-left #wireplumber.muted,
|
||||
.modules-left #pulseaudio.muted,
|
||||
.modules-left #sndio.muted {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-left #upower,
|
||||
.modules-left #battery {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #upower.charging,
|
||||
.modules-left #battery.Charging {
|
||||
background-color: @base0E;
|
||||
}
|
||||
.modules-left #network {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #network.disconnected {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-left #user {
|
||||
background-color: @base0F;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #clock {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #backlight {
|
||||
background-color: @base0E;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #cpu {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #disk {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #idle_inhibitor {
|
||||
background-color: @base06;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #temperature {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #mpd {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #language {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #keyboard-state {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #memory {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-left #window {
|
||||
background-color: @base0C;
|
||||
color: @base00;
|
||||
}
|
||||
window .modules-center #workspaces button {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #wireplumber,
|
||||
.modules-center #pulseaudio,
|
||||
.modules-center #sndio {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #workspaces button.focused,
|
||||
.modules-center #workspaces button.active {
|
||||
background: @base03;
|
||||
}
|
||||
.modules-center #workspaces button.urgent {
|
||||
background-color: @base08;
|
||||
}
|
||||
.modules-center #wireplumber.muted,
|
||||
.modules-center #pulseaudio.muted,
|
||||
.modules-center #sndio.muted {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-center #upower,
|
||||
.modules-center #battery {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #upower.charging,
|
||||
.modules-center #battery.Charging {
|
||||
background-color: @base0E;
|
||||
}
|
||||
.modules-center #network {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #network.disconnected {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-center #user {
|
||||
background-color: @base0F;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #clock {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #backlight {
|
||||
background-color: @base0E;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #cpu {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #disk {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #idle_inhibitor {
|
||||
background-color: @base06;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #temperature {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #mpd {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #language {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #keyboard-state {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #memory {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-center #window {
|
||||
background-color: @base0C;
|
||||
color: @base00;
|
||||
}
|
||||
window .modules-right #workspaces button {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #wireplumber,
|
||||
.modules-right #pulseaudio,
|
||||
.modules-right #sndio {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #workspaces button.focused,
|
||||
.modules-right #workspaces button.active {
|
||||
background: @base03;
|
||||
}
|
||||
.modules-right #workspaces button.urgent {
|
||||
background-color: @base08;
|
||||
}
|
||||
.modules-right #wireplumber.muted,
|
||||
.modules-right #pulseaudio.muted,
|
||||
.modules-right #sndio.muted {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-right #upower,
|
||||
.modules-right #battery {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #upower.charging,
|
||||
.modules-right #battery.Charging {
|
||||
background-color: @base0E;
|
||||
}
|
||||
.modules-right #network {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #network.disconnected {
|
||||
background-color: @base0C;
|
||||
}
|
||||
.modules-right #user {
|
||||
background-color: @base0F;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #clock {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #backlight {
|
||||
background-color: @base0E;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #cpu {
|
||||
background-color: @base0B;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #disk {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #idle_inhibitor {
|
||||
background-color: @base06;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #temperature {
|
||||
background-color: @base07;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #mpd {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #language {
|
||||
background-color: @base02;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #keyboard-state {
|
||||
background-color: @base03;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #memory {
|
||||
background-color: @base09;
|
||||
color: @base00;
|
||||
}
|
||||
.modules-right #window {
|
||||
background-color: @base0C;
|
||||
color: @base00;
|
||||
}
|
||||
|
@ -1,152 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ waybar ];
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
spacing = 30;
|
||||
margin-left = 0;
|
||||
margin-right = 0;
|
||||
modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
|
||||
modules-center = [ "hyprland/workspaces" ];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"battery"
|
||||
"clock"
|
||||
"custom/power"
|
||||
];
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
on-click = "activate";
|
||||
format = "{}";
|
||||
format-icons = {
|
||||
urgent = "";
|
||||
active = "";
|
||||
default = "";
|
||||
};
|
||||
persistent-workspaces = {
|
||||
"*" = 3;
|
||||
};
|
||||
};
|
||||
"wlr/taskbar" = {
|
||||
format = "{icon}";
|
||||
icon-size = 18;
|
||||
tooltip-format = "{title}";
|
||||
on-click = "activate";
|
||||
on-click-middle = "close";
|
||||
ignore-list = [
|
||||
"kitty"
|
||||
];
|
||||
app_ids-mapping = {};
|
||||
rewrite = {};
|
||||
};
|
||||
"hyprland/window" = {
|
||||
rewrite = {};
|
||||
separate-outputs = true;
|
||||
};
|
||||
"custom/appmenu" = {
|
||||
format = " "; # Manual padding to move it further from left edge
|
||||
on-click = "wofi --show drun";
|
||||
};
|
||||
"custom/exit" = {
|
||||
format = " "; # Manual padding to move it further from right edge
|
||||
on-click = "wlogout";
|
||||
tooltip-format = "Power Menu";
|
||||
};
|
||||
keyboard-state = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
format = "{name} {icon}";
|
||||
format-icons = {
|
||||
locked = " ";
|
||||
unlocked = " ";
|
||||
};
|
||||
};
|
||||
tray = {
|
||||
icon-size = 21;
|
||||
spacing = 10;
|
||||
};
|
||||
clock = {
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = ''{:%Y-%m-%d}'';
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = ''{capacity}% {icon}'';
|
||||
format-full = ''{capacity}% {icon}'';
|
||||
format-charging = ''{capacity}% '';
|
||||
format-plugged = ''{capacity}% '';
|
||||
format-alt = ''{time} {icon}'';
|
||||
format-icons = [ " " " " " " " " " " ];
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
format = ''{icon}'';
|
||||
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||
tooltip = true;
|
||||
format-icons = {
|
||||
default = '' '';
|
||||
performance = '' '';
|
||||
balanced = '' '';
|
||||
power-saver = '' '';
|
||||
};
|
||||
};
|
||||
network = {
|
||||
format-wifi = ''{essid} ({signalStrength}%) '';
|
||||
format-ethernet = ''{ipaddr}/{cidr} '';
|
||||
tooltip-format = ''{ifname} via {gwaddr} '';
|
||||
format-linked = ''{ifname} (No IP) '';
|
||||
format-disconnected = ''Disconnected ⚠ '';
|
||||
format-alt = ''{ifname}: {ipaddr}/{cidr}'';
|
||||
on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
|
||||
on-click-right = "nm-connection-editor";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = ''{volume}% {icon} {format_source}'';
|
||||
format-bluetooth = ''{volume}% {icon} {format_source}'';
|
||||
format-bluetooth-muted = ''{icon} {format_source}'';
|
||||
format-muted = ''{format_source}'';
|
||||
format-source = ''{volume}% '';
|
||||
format-source-muted = '' '';
|
||||
format-icons = {
|
||||
headphone = '' '';
|
||||
hands-free = '' '';
|
||||
headset = '' '';
|
||||
phone = '' '';
|
||||
portable = '' '';
|
||||
car = '' '';
|
||||
default = [ "" " " " " ];
|
||||
};
|
||||
on-click = ''pavucontrol'';
|
||||
};
|
||||
"custom/power" = {
|
||||
format = ''⏻ '';
|
||||
tooltip = false;
|
||||
menu = "on-click";
|
||||
menu-file = ''$HOME/.config/waybar/power_menu.xml'';
|
||||
menu-actions = {
|
||||
shutdown = "shutdown";
|
||||
reboot = "reboot";
|
||||
suspend = "systemctl suspend";
|
||||
hibernate = "systemctl hibernate";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# We want Stylix to do most of the heavy lifting for our styling,
|
||||
# but we want to add a few snippets. So we're going to run waybar
|
||||
# with '-c ~/.config/waybar/waybar.css', which will add our snippets
|
||||
# and then source the original, default '~/.config/waybar/style.css'
|
||||
# created by Stylix.
|
||||
# home.file."waybar.css" = {
|
||||
# target = ".config/waybar/waybar.css";
|
||||
# source = ./waybar.css;
|
||||
# };
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./waybar.nix
|
||||
./wofi.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
mako
|
||||
libnotify
|
||||
swww
|
||||
polkit-kde-agent
|
||||
dolphin
|
||||
power-profiles-daemon
|
||||
pavucontrol
|
||||
grimblast
|
||||
];
|
||||
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show = "drun";
|
||||
width = "40%";
|
||||
height = "20%";
|
||||
allow_markup = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{ ... }: {
|
||||
# Configure audio
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
@ -9,4 +8,4 @@
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
}
|
||||
}
|
19
dotfiles/modules/hardware/goxlr-mini.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ pkgs, sys, ... }: {
|
||||
services.goxlr-utility.enable = true;
|
||||
home-manager.users."${sys.username}" = {
|
||||
home.packages = with pkgs; [ goxlr-utility ];
|
||||
systemd.user.services = {
|
||||
goxlr-utility = {
|
||||
Unit = {
|
||||
Description = "Unofficial GoXLR App replacement for Linux, Windows and MacOS";
|
||||
Documentation = [ "https://github.com/GoXLR-on-Linux/goxlr-utility" ];
|
||||
};
|
||||
Service = {
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
ExecStart = "${pkgs.goxlr-utility}/bin/goxlr-daemon";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
7
dotfiles/modules/hardware/libinput.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ ... }: {
|
||||
services.libinput = {
|
||||
enable = true;
|
||||
mouse.naturalScrolling = true;
|
||||
touchpad.naturalScrolling = true;
|
||||
};
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ cifs-utils ];
|
||||
fileSystems =
|
||||
let
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||
permissions_opts = "credentials=/etc/nixos/smb-secrets,uid=1000,gid=1000";
|
||||
fileSystems =
|
||||
let
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||
permissions_opts = "credentials=/etc/nixos/smb-secrets,uid=1000,gid=1000";
|
||||
in {
|
||||
# Pool Media on Paladin
|
||||
"/mnt/smb/paladin/Media/AV" = {
|
||||
@ -36,7 +36,7 @@
|
||||
fsType = "cifs";
|
||||
options = ["${automount_opts},${permissions_opts}"];
|
||||
};
|
||||
|
||||
|
||||
# Pool Tank on Paladin
|
||||
"/mnt/smb/paladin/Tank/AppData" = {
|
||||
device = "//192.168.1.12/AppData";
|
3
dotfiles/modules/hardware/printing.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ ... }: {
|
||||
services.printing.enable = true;
|
||||
}
|
12
dotfiles/modules/hardware/razer.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ pkgs, sys, ... }: {
|
||||
hardware.openrazer = {
|
||||
enable = true;
|
||||
users = [ "${sys.username}" ];
|
||||
batteryNotifier = {
|
||||
enable = true;
|
||||
frequency = 600;
|
||||
percentage = 40;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = [ pkgs.razergenie ];
|
||||
}
|
3
dotfiles/modules/hardware/wooting.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ ... }: {
|
||||
hardware.wooting.enable = true;
|
||||
}
|
4
dotfiles/modules/hardware/xpad.nix
Normal file
@ -0,0 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
hardware.xpadneo.enable = true;
|
||||
environment.systemPackages = [ pkgs.gamepad-tool ];
|
||||
}
|
9
dotfiles/modules/programs/games/vintagestory.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ sys, ... }: {
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 42420 ];
|
||||
allowedUDPPorts = [ 42420 ];
|
||||
};
|
||||
home-manager.users."${sys.username}" = {
|
||||
services.flatpak.packages = [ "at.vintagestory.VintageStory/x86_64/stable" ];
|
||||
};
|
||||
}
|
21
dotfiles/modules/services/flatpak.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ sys, pkgs, ... }: {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
|
||||
};
|
||||
home-manager.users."${sys.username}" = {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
|
||||
};
|
||||
home.packages = with pkgs; [ flatpak ];
|
||||
};
|
||||
}
|
||||
|
||||
# To use:
|
||||
# For system packages:
|
||||
# services.flatpak.packages = [ "com.myproject.app/arch/branch" ];
|
||||
# For user packages:
|
||||
# home-manager.users."${sysVars.username}".services.flatpak.packages = [ "com.myproject.app/arch/branch" ];
|
14
dotfiles/modules/services/ssh.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ pkgs, sys, ... }: {
|
||||
# Enable SSH server with exclusively key-based auth
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = false;
|
||||
settings.KbdInteractiveAuthentication = false;
|
||||
};
|
||||
users.users."${sys.username}".openssh.authorizedKeys.keys = let
|
||||
authorizedKeys = pkgs.fetchurl {
|
||||
url = "https://github.com/Jafner.keys";
|
||||
sha256 = "1i3Vs6mPPl965g3sRmbXGzx6zQBs5geBCgNx2zfpjF4=";
|
||||
};
|
||||
in pkgs.lib.splitString "\n" (builtins.readFile authorizedKeys);
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./hardware/amdgpu.nix
|
||||
./hardware/audio.nix
|
||||
./hardware/boot.nix
|
||||
./hardware/filesystems.nix
|
||||
./hardware/networking.nix
|
||||
./hardware/peripherals.nix
|
||||
./hardware/samba-client.nix
|
||||
|
||||
./services/flatpak.nix
|
||||
./services/ollama.nix
|
||||
./services/printing.nix
|
||||
./services/ssh.nix
|
||||
./services/syncthing.nix
|
||||
./services/vintagestory.nix
|
||||
./services/minecraft-server.nix
|
||||
|
||||
./sysconfig/desktop-environment.nix
|
||||
./sysconfig/fonts.nix
|
||||
./sysconfig/gaming.nix
|
||||
./sysconfig/localization.nix
|
||||
./sysconfig/nixos.nix
|
||||
./sysconfig/user.nix
|
||||
./sysconfig/ydotool.nix
|
||||
];
|
||||
|
||||
# DO NOT CHANGE
|
||||
system.stateVersion = "24.11";
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
hardware = {
|
||||
amdgpu.amdvlk.enable = false;
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocminfo
|
||||
];
|
||||
environment.variables = {
|
||||
AMD_VULKAN_ICD = "RADV";
|
||||
};
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
boot = {
|
||||
#kernelPackages = pkgs.linuxKernel.kernels.linux_xanmod_latest
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
initrd = {
|
||||
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
kernelModules = [ "amdgpu" "kvm-amd" ];
|
||||
extraModulePackages = [ ];
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{ ... }: {
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/e29ec340-6231-4afe-91a8-aaa2da613282";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/CC5A-CDFE";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/mnt/fedora" = {
|
||||
device = "/dev/disk/by-uuid/15454185-1268-4559-a074-bb154dc20a93";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
swapDevices = [ { device = "/dev/disk/by-uuid/73e8e737-1c5c-4ead-80c6-e616be538145"; } ];
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
networking = {
|
||||
hostName = "joey-desktop-nixos";
|
||||
networkmanager.enable = true;
|
||||
useDHCP = lib.mkDefault true;
|
||||
};
|
||||
# Configure system packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
networkmanagerapplet
|
||||
];
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
# Configure mouse and touchpad
|
||||
services.libinput = {
|
||||
enable = true;
|
||||
mouse.naturalScrolling = true;
|
||||
touchpad.naturalScrolling = true;
|
||||
};
|
||||
services.goxlr-utility.enable = true;
|
||||
hardware.wooting.enable = true;
|
||||
hardware.xpadneo.enable = true;
|
||||
hardware.openrazer = {
|
||||
enable = true;
|
||||
users = [ "joey" ];
|
||||
batteryNotifier = {
|
||||
enable = true;
|
||||
frequency = 600;
|
||||
percentage = 40;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
razergenie
|
||||
gamepad-tool
|
||||
linuxKernel.packages.linux_6_11.xpadneo
|
||||
];
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ ... }: {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
|
||||
};
|
||||
}
|