Compare commits
55
Commits
master
...
1bd07d8062
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1bd07d8062 | ||
|
|
ddd7250991 | ||
|
|
c78bf067e9 | ||
|
|
9e0e63dd48 | ||
|
|
c795a16deb | ||
|
|
02cd11a936 | ||
|
|
4758954aea | ||
|
|
01bc1610bf | ||
|
|
d26818f47a | ||
|
|
ca50e2af2b | ||
|
|
0cc88081d1 | ||
|
|
dee91dd001 | ||
|
|
510e179b78 | ||
|
|
ea39ab9992 | ||
|
|
f2c215460b | ||
|
|
96d83ec1b4 | ||
|
|
a3f6c55b93 | ||
|
|
879ea3474a | ||
|
|
41cf1a5894 | ||
|
|
b294b8c8ee | ||
|
|
e677754de3 | ||
|
|
4f11c8139f | ||
|
|
e46c205fe3 | ||
|
|
290b694877 | ||
|
|
8ad47d16eb | ||
|
|
e3f8430193 | ||
|
|
46d4249637 | ||
|
|
8c1f94d05a | ||
|
|
bac068cf69 | ||
|
|
6cbc8b393d | ||
|
|
ac3eee4bb0 | ||
|
|
045f44e2d2 | ||
|
|
a198789a17 | ||
|
|
7fa285f0cc | ||
|
|
bebf7e8b6d | ||
|
|
6f2c1bed14 | ||
|
|
dfa96985d6 | ||
|
|
2a6196cc70 | ||
|
|
23a0e060ef | ||
|
|
040923c626 | ||
|
|
2c3de69e72 | ||
|
|
8ea1207bb9 | ||
|
|
21fe030dc7 | ||
|
|
f6950c7e78 | ||
|
|
f76b88cf4b | ||
|
|
6e5568e330 | ||
|
|
1308aae228 | ||
|
|
ded07cb14a | ||
|
|
81ab925d88 | ||
|
|
e909e76c9e | ||
|
|
3fc9f416f9 | ||
|
|
c3672ea118 | ||
|
|
1dee7a5769 | ||
|
|
e0a0721dea | ||
|
|
5cad49555e |
No files matched your search
@@ -0,0 +1 @@
|
||||
screenshot.png filter=lfs diff=lfs merge=lfs -text
|
||||
Generated
+393
-245
File diff suppressed because it is too large.
Load diff
@@ -3,26 +3,28 @@
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.garnix.io"
|
||||
"https://hyprland.cachix.org"
|
||||
"https://ezkea.cachix.org"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
|
||||
];
|
||||
};
|
||||
|
||||
inputs = {
|
||||
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
aagl.url = "github:ezKEa/aagl-gtk-on-nix";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/master";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
stylix.url = "github:danth/stylix";
|
||||
ags.url = "github:Aylur/ags";
|
||||
ayugram-desktop.url = "github:/ayugram-port/ayugram-desktop/release?submodules=1";
|
||||
tlock.url = "git+https://github.com/eklairs/tlock?submodules=1";
|
||||
|
||||
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
hyprland-plugins = {
|
||||
url = "github:hyprwm/hyprland-plugins";
|
||||
@@ -37,10 +39,6 @@
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-stable, home-manager, ... }@inputs: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ inputs.hyprpanel.overlay ];
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
Rias = nixpkgs.lib.nixosSystem {
|
||||
@@ -51,10 +49,7 @@
|
||||
};
|
||||
inherit inputs system;
|
||||
};
|
||||
modules = [
|
||||
./nixos/hosts/Rias/configuration.nix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
modules = [ ./host/Rias/configuration.nix ];
|
||||
};
|
||||
|
||||
Senko = nixpkgs.lib.nixosSystem {
|
||||
@@ -65,10 +60,7 @@
|
||||
};
|
||||
inherit inputs system;
|
||||
};
|
||||
modules = [
|
||||
./nixos/hosts/Senko/configuration.nix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
modules = [ ./host/Senko/configuration.nix ];
|
||||
};
|
||||
|
||||
Eclipse = nixpkgs.lib.nixosSystem {
|
||||
@@ -79,47 +71,20 @@
|
||||
};
|
||||
inherit inputs system;
|
||||
};
|
||||
modules = [
|
||||
./nixos/hosts/Eclipse/configuration.nix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
modules = [ ./host/Eclipse/configuration.nix ];
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
sweetbread = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
pkgs-stable = import nixpkgs-stable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
modules = [
|
||||
./home-manager/users/sweetbread/home.nix
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
inputs.ags.homeManagerModules.default
|
||||
devShells."${system}".default = let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in pkgs.mkShell {
|
||||
shellHook = "zsh";
|
||||
packages = with pkgs; [
|
||||
cargo
|
||||
rustc
|
||||
rust-analyzer
|
||||
lldb
|
||||
];
|
||||
};
|
||||
|
||||
chest = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
pkgs-stable = import nixpkgs-stable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
modules = [
|
||||
./home-manager/users/chest/home.nix
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
inputs.ags.homeManagerModules.default
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,325 +0,0 @@
|
||||
{ inputs, pkgs, config, ... }: {
|
||||
# imports = [ inputs.ags.homeManagerModules.default ];
|
||||
|
||||
programs.ags = {
|
||||
enable = true;
|
||||
|
||||
# null or path, leave as null if you don't want hm to manage the config
|
||||
configDir = null;
|
||||
|
||||
# additional packages to add to gjs's runtime
|
||||
extraPackages = with pkgs; [
|
||||
gtksourceview
|
||||
webkitgtk
|
||||
accountsservice
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile."ags/config.js".text = /*js*/ ''
|
||||
const hyprland = await Service.import("hyprland")
|
||||
const notifications = await Service.import("notifications")
|
||||
const mpris = await Service.import("mpris")
|
||||
const audio = await Service.import("audio")
|
||||
const battery = await Service.import("battery")
|
||||
const systemtray = await Service.import("systemtray")
|
||||
|
||||
const date = Variable("", {
|
||||
poll: [1000, 'date "+%H:%M:%S %b %e."'],
|
||||
})
|
||||
|
||||
// widgets can be only assigned as a child in one container
|
||||
// so to make a reuseable widget, make it a function
|
||||
// then you can simply instantiate one by calling it
|
||||
|
||||
function Workspaces() {
|
||||
const activeId = hyprland.active.workspace.bind("id")
|
||||
const workspaces = hyprland.bind("workspaces")
|
||||
.as(ws => ws.map(({ id }) => Widget.Button({
|
||||
on_clicked: () => hyprland.messageAsync(`dispatch workspace ''${id}`),
|
||||
child: Widget.Label(`''${id}`),
|
||||
class_name: activeId.as(i => `''${i === id ? "focused" : ""}`),
|
||||
})))
|
||||
|
||||
return Widget.Box({
|
||||
class_name: "workspaces",
|
||||
children: workspaces,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function ClientTitle() {
|
||||
return Widget.Label({
|
||||
class_name: "client-title",
|
||||
label: hyprland.active.client.bind("title"),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function Clock() {
|
||||
return Widget.Label({
|
||||
class_name: "clock",
|
||||
label: date.bind(),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// we don't need dunst or any other notification daemon
|
||||
// because the Notifications module is a notification daemon itself
|
||||
function Notification() {
|
||||
const popups = notifications.bind("popups")
|
||||
return Widget.Box({
|
||||
class_name: "notification",
|
||||
visible: popups.as(p => p.length > 0),
|
||||
children: [
|
||||
Widget.Icon({
|
||||
icon: "preferences-system-notifications-symbolic",
|
||||
}),
|
||||
Widget.Label({
|
||||
label: popups.as(p => p[0]?.summary || ""),
|
||||
}),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function Media() {
|
||||
const label = Utils.watch("default", mpris, "player-changed", () => {
|
||||
if (mpris.players[0]) {
|
||||
const { track_artists, track_title } = mpris.players[0]
|
||||
return `''${track_artists.join(", ")} - ''${track_title}`
|
||||
} else {
|
||||
return "Nothing is playing"
|
||||
}
|
||||
})
|
||||
|
||||
print(Object.values(label))
|
||||
if (label != "default") {
|
||||
return Widget.Button({
|
||||
class_name: "media",
|
||||
on_primary_click: () => mpris.getPlayer("")?.playPause(),
|
||||
on_scroll_up: () => mpris.getPlayer("")?.next(),
|
||||
on_scroll_down: () => mpris.getPlayer("")?.previous(),
|
||||
child: Widget.Label({ label }),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function Volume() {
|
||||
const icons = {
|
||||
101: "overamplified",
|
||||
67: "high",
|
||||
34: "medium",
|
||||
1: "low",
|
||||
0: "muted",
|
||||
}
|
||||
|
||||
function getIcon() {
|
||||
const icon = audio.speaker.is_muted ? 0 : [101, 67, 34, 1, 0].find(
|
||||
threshold => threshold <= audio.speaker.volume * 100)
|
||||
|
||||
return `audio-volume-''${icons[icon]}-symbolic`
|
||||
}
|
||||
|
||||
const icon = Widget.Icon({
|
||||
icon: Utils.watch(getIcon(), audio.speaker, getIcon),
|
||||
})
|
||||
|
||||
const slider = Widget.Slider({
|
||||
hexpand: true,
|
||||
draw_value: false,
|
||||
on_change: ({ value }) => audio.speaker.volume = value,
|
||||
setup: self => self.hook(audio.speaker, () => {
|
||||
self.value = audio.speaker.volume || 0
|
||||
}),
|
||||
})
|
||||
|
||||
return Widget.Box({
|
||||
class_name: "volume",
|
||||
css: "min-width: 180px",
|
||||
children: [icon, slider],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function BatteryLabel() {
|
||||
const value = battery.bind("percent").as(p => p > 0 ? p / 100 : 0)
|
||||
const icon = battery.bind("percent").as(p =>
|
||||
`battery-level-''${Math.floor(p / 10) * 10}-symbolic`)
|
||||
|
||||
return Widget.Box({
|
||||
class_name: "battery",
|
||||
visible: battery.bind("available"),
|
||||
children: [
|
||||
Widget.Icon({ icon }),
|
||||
Widget.LevelBar({
|
||||
widthRequest: 140,
|
||||
vpack: "center",
|
||||
value,
|
||||
}),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function SysTray() {
|
||||
const items = systemtray.bind("items")
|
||||
.as(items => items.map(item => Widget.Button({
|
||||
child: Widget.Icon({ icon: item.bind("icon") }),
|
||||
on_primary_click: (_, event) => item.activate(event),
|
||||
on_secondary_click: (_, event) => item.openMenu(event),
|
||||
tooltip_markup: item.bind("tooltip_markup"),
|
||||
})))
|
||||
|
||||
return Widget.Box({
|
||||
children: items,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// layout of the bar
|
||||
function Left() {
|
||||
return Widget.Box({
|
||||
spacing: 8,
|
||||
children: [
|
||||
Workspaces(),
|
||||
ClientTitle(),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function Center() {
|
||||
return Widget.Box({
|
||||
spacing: 8,
|
||||
children: [
|
||||
Media(),
|
||||
Notification(),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function Right() {
|
||||
return Widget.Box({
|
||||
hpack: "end",
|
||||
spacing: 8,
|
||||
children: [
|
||||
Volume(),
|
||||
BatteryLabel(),
|
||||
Clock(),
|
||||
SysTray(),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function Bar(monitor = 0) {
|
||||
return Widget.Window({
|
||||
name: `bar-''${monitor}`, // name has to be unique
|
||||
class_name: "bar",
|
||||
monitor,
|
||||
anchor: ["top", "left", "right"],
|
||||
exclusivity: "exclusive",
|
||||
child: Widget.CenterBox({
|
||||
start_widget: Left(),
|
||||
center_widget: Center(),
|
||||
end_widget: Right(),
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
||||
App.config({
|
||||
style: "./style.css",
|
||||
windows: [
|
||||
Bar(),
|
||||
|
||||
// you can call it, for each monitor
|
||||
// Bar(0),
|
||||
// Bar(1)
|
||||
],
|
||||
})
|
||||
|
||||
export { }
|
||||
'';
|
||||
|
||||
xdg.configFile."ags/style.css".text = let
|
||||
colors = config.lib.stylix.colors;
|
||||
|
||||
color = {
|
||||
base = colors.base00;
|
||||
mantle = colors.base01;
|
||||
surface0 = colors.base02;
|
||||
surface1 = colors.base03;
|
||||
surface2 = colors.base04;
|
||||
text = colors.base05;
|
||||
rosewater = colors.base06;
|
||||
lavander = colors.base07;
|
||||
red = colors.base08;
|
||||
peach = colors.base09;
|
||||
yellow = colors.base0A;
|
||||
green = colors.base0B;
|
||||
teal = colors.base0C;
|
||||
blue = colors.base0D;
|
||||
mauve = colors.base0E;
|
||||
flamingo = colors.base0F;
|
||||
};
|
||||
in /*css*/ ''
|
||||
* {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
window.bar {
|
||||
background-color: transparent;
|
||||
color: #${color.text};
|
||||
}
|
||||
|
||||
button {
|
||||
/* size: 20px; */
|
||||
background-color: transparent;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
button:active {
|
||||
background-color: /*#${color.surface0}*/ red;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.workspaces {
|
||||
background-color: #${color.base};
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.workspaces button {
|
||||
color: #${color.surface2};
|
||||
background: transparent;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.workspaces button:hover {
|
||||
color: #${color.text};
|
||||
}
|
||||
|
||||
.workspaces button.focused {
|
||||
background-color: #${color.surface0};
|
||||
color: #${color.text};
|
||||
}
|
||||
|
||||
.client-title {
|
||||
color: @theme_selected_bg_color;
|
||||
}
|
||||
|
||||
.notification {
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
levelbar block,
|
||||
highlight {
|
||||
min-height: 10px;
|
||||
}
|
||||
'';
|
||||
|
||||
# home.packages = [ pkgs.ags ];
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
# Simple Bar
|
||||
|
||||
setup
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/ags
|
||||
git clone https://github.com/Aylur/ags.git /tmp/ags
|
||||
cp -r /tmp/ags/example/simple-bar/* ~/.config/ags
|
||||
|
||||
# optionally setup types
|
||||
ags --init -c ~/.config/ags/config.js
|
||||
```
|
||||
|
||||
running
|
||||
|
||||
```bash
|
||||
ags -c ~/.config/ags/config.js &
|
||||
```
|
||||
@@ -1,219 +0,0 @@
|
||||
const hyprland = await Service.import("hyprland")
|
||||
const notifications = await Service.import("notifications")
|
||||
const mpris = await Service.import("mpris")
|
||||
const audio = await Service.import("audio")
|
||||
const battery = await Service.import("battery")
|
||||
const systemtray = await Service.import("systemtray")
|
||||
|
||||
const date = Variable("", {
|
||||
poll: [1000, 'date "+%H:%M:%S %b %e."'],
|
||||
})
|
||||
|
||||
// widgets can be only assigned as a child in one container
|
||||
// so to make a reuseable widget, make it a function
|
||||
// then you can simply instantiate one by calling it
|
||||
|
||||
function Workspaces() {
|
||||
const activeId = hyprland.active.workspace.bind("id")
|
||||
const workspaces = hyprland.bind("workspaces")
|
||||
.as(ws => ws.map(({ id }) => Widget.Button({
|
||||
on_clicked: () => hyprland.messageAsync(`dispatch workspace ${id}`),
|
||||
child: Widget.Label(`${id}`),
|
||||
class_name: activeId.as(i => `${i === id ? "focused" : ""}`),
|
||||
})))
|
||||
|
||||
return Widget.Box({
|
||||
class_name: "workspaces",
|
||||
children: workspaces,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function ClientTitle() {
|
||||
return Widget.Label({
|
||||
class_name: "client-title",
|
||||
label: hyprland.active.client.bind("title"),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function Clock() {
|
||||
return Widget.Label({
|
||||
class_name: "clock",
|
||||
label: date.bind(),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// we don't need dunst or any other notification daemon
|
||||
// because the Notifications module is a notification daemon itself
|
||||
function Notification() {
|
||||
const popups = notifications.bind("popups")
|
||||
return Widget.Box({
|
||||
class_name: "notification",
|
||||
visible: popups.as(p => p.length > 0),
|
||||
children: [
|
||||
Widget.Icon({
|
||||
icon: "preferences-system-notifications-symbolic",
|
||||
}),
|
||||
Widget.Label({
|
||||
label: popups.as(p => p[0]?.summary || ""),
|
||||
}),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function Media() {
|
||||
const label = Utils.watch("", mpris, "player-changed", () => {
|
||||
if (mpris.players[0]) {
|
||||
const { track_artists, track_title } = mpris.players[0]
|
||||
return `${track_artists.join(", ")} - ${track_title}`
|
||||
} else {
|
||||
return "Nothing is playing"
|
||||
}
|
||||
})
|
||||
|
||||
return Widget.Button({
|
||||
class_name: "media",
|
||||
on_primary_click: () => mpris.getPlayer("")?.playPause(),
|
||||
on_scroll_up: () => mpris.getPlayer("")?.next(),
|
||||
on_scroll_down: () => mpris.getPlayer("")?.previous(),
|
||||
child: Widget.Label({ label }),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function Volume() {
|
||||
const icons = {
|
||||
101: "overamplified",
|
||||
67: "high",
|
||||
34: "medium",
|
||||
1: "low",
|
||||
0: "muted",
|
||||
}
|
||||
|
||||
function getIcon() {
|
||||
const icon = audio.speaker.is_muted ? 0 : [101, 67, 34, 1, 0].find(
|
||||
threshold => threshold <= audio.speaker.volume * 100)
|
||||
|
||||
return `audio-volume-${icons[icon]}-symbolic`
|
||||
}
|
||||
|
||||
const icon = Widget.Icon({
|
||||
icon: Utils.watch(getIcon(), audio.speaker, getIcon),
|
||||
})
|
||||
|
||||
const slider = Widget.Slider({
|
||||
hexpand: true,
|
||||
draw_value: false,
|
||||
on_change: ({ value }) => audio.speaker.volume = value,
|
||||
setup: self => self.hook(audio.speaker, () => {
|
||||
self.value = audio.speaker.volume || 0
|
||||
}),
|
||||
})
|
||||
|
||||
return Widget.Box({
|
||||
class_name: "volume",
|
||||
css: "min-width: 180px",
|
||||
children: [icon, slider],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function BatteryLabel() {
|
||||
const value = battery.bind("percent").as(p => p > 0 ? p / 100 : 0)
|
||||
const icon = battery.bind("percent").as(p =>
|
||||
`battery-level-${Math.floor(p / 10) * 10}-symbolic`)
|
||||
|
||||
return Widget.Box({
|
||||
class_name: "battery",
|
||||
visible: battery.bind("available"),
|
||||
children: [
|
||||
Widget.Icon({ icon }),
|
||||
Widget.LevelBar({
|
||||
widthRequest: 140,
|
||||
vpack: "center",
|
||||
value,
|
||||
}),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function SysTray() {
|
||||
const items = systemtray.bind("items")
|
||||
.as(items => items.map(item => Widget.Button({
|
||||
child: Widget.Icon({ icon: item.bind("icon") }),
|
||||
on_primary_click: (_, event) => item.activate(event),
|
||||
on_secondary_click: (_, event) => item.openMenu(event),
|
||||
tooltip_markup: item.bind("tooltip_markup"),
|
||||
})))
|
||||
|
||||
return Widget.Box({
|
||||
children: items,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// layout of the bar
|
||||
function Left() {
|
||||
return Widget.Box({
|
||||
spacing: 8,
|
||||
children: [
|
||||
Workspaces(),
|
||||
ClientTitle(),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function Center() {
|
||||
return Widget.Box({
|
||||
spacing: 8,
|
||||
children: [
|
||||
Media(),
|
||||
Notification(),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function Right() {
|
||||
return Widget.Box({
|
||||
hpack: "end",
|
||||
spacing: 8,
|
||||
children: [
|
||||
Volume(),
|
||||
BatteryLabel(),
|
||||
Clock(),
|
||||
SysTray(),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function Bar(monitor = 0) {
|
||||
return Widget.Window({
|
||||
name: `bar-${monitor}`, // name has to be unique
|
||||
class_name: "bar",
|
||||
monitor,
|
||||
anchor: ["top", "left", "right"],
|
||||
exclusivity: "exclusive",
|
||||
child: Widget.CenterBox({
|
||||
start_widget: Left(),
|
||||
center_widget: Center(),
|
||||
end_widget: Right(),
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
||||
App.config({
|
||||
style: "./style.css",
|
||||
windows: [
|
||||
Bar(),
|
||||
|
||||
// you can call it, for each monitor
|
||||
// Bar(0),
|
||||
// Bar(1)
|
||||
],
|
||||
})
|
||||
|
||||
export { }
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
./kitty.nix
|
||||
./qt.nix
|
||||
./sops.nix
|
||||
./neofetch.nix
|
||||
./syncthing.nix
|
||||
./yazi.nix
|
||||
./ags.nix
|
||||
./zsh.nix
|
||||
./helix.nix
|
||||
|
||||
./wms/wofi.nix
|
||||
./wms/mako.nix
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ lib, pkgs, ... }: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
settings = lib.mkDefault {
|
||||
dynamic_background_opacity = "yes";
|
||||
background_opacity = 0.5;
|
||||
background_blur = true;
|
||||
background = "#1d2021";
|
||||
font_size = 13.0;
|
||||
cursor_blink_interval = "0.5 ease-in-out";
|
||||
};
|
||||
};
|
||||
programs.zsh.envExtra = "TERM=xterm-256color";
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
services.syncthing.enable = true;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
vscode
|
||||
jetbrains.pycharm-community
|
||||
jetbrains.idea-community
|
||||
android-studio
|
||||
|
||||
cmake
|
||||
gnumake
|
||||
nodejs
|
||||
(python3.withPackages (ps: with ps; [ requests bpython ]))
|
||||
python311Packages.pip
|
||||
rocmPackages.llvm.clang-tools-extra
|
||||
rocmPackages.llvm.clang
|
||||
ncurses
|
||||
];
|
||||
}
|
||||
@@ -1,455 +0,0 @@
|
||||
{ pkgs, config, active_color }: {
|
||||
home.packages = [ pkgs.pulsemixer ];
|
||||
wayland.windowManager.hyprland.settings.windowrule = [
|
||||
"float, ^(pulsemixer)"
|
||||
"float, ^(nmtui)"
|
||||
];
|
||||
|
||||
xdg.configFile."waybar/scripts/wttr.py".source = pkgs.fetchurl {
|
||||
name = "waybar-wttr.py";
|
||||
url = "https://gist.githubusercontent.com/bjesus/f8db49e1434433f78e5200dc403d58a3/raw/47f9ffd573dc8e8edce0ea6708601b8e685a70ab/waybar-wttr.py";
|
||||
sha256 = "15j2cqg405q37wrrlm70mhp7rx6xnrn92rfm1ix6g3nl98ksh45g";
|
||||
};
|
||||
|
||||
programs.waybar =
|
||||
let
|
||||
colors = config.lib.stylix.colors;
|
||||
in {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
margin = "9 13 -10 18";
|
||||
|
||||
modules-left = ["hyprland/workspaces" "hyprland/language" "keyboard-state" "hyprland/submap"];
|
||||
modules-center = ["mpris" "wlr/taskbar"];
|
||||
modules-right = ["group/system" "battery" "pulseaudio" "clock" "tray"];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
};
|
||||
|
||||
"wlr/taskbar" = {
|
||||
on-click = "activate";
|
||||
on-click-middle = "close";
|
||||
on-click-right = "minimize";
|
||||
};
|
||||
|
||||
"group/system" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
transition-left-to-right = false;
|
||||
};
|
||||
modules = [
|
||||
"network"
|
||||
"custom/mem"
|
||||
"cpu"
|
||||
"temperature"
|
||||
"backlight"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
"hyprland/language" = {
|
||||
format-en = "US";
|
||||
format-ru = "RU";
|
||||
min-length = 5;
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"keyboard-state" = {
|
||||
capslock = true;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
locked = "CUPS";
|
||||
unlocked = "";
|
||||
};
|
||||
};
|
||||
|
||||
"clock" = {
|
||||
tooltip = false;
|
||||
format = "{:%a, %d %b %R}";
|
||||
};
|
||||
|
||||
"custom/weather" = {
|
||||
format = "{}";
|
||||
tooltip = true;
|
||||
interval = 1800;
|
||||
exec = "python3 $HOME/.config/waybar/scripts/wttr.py";
|
||||
return-type = "json";
|
||||
};
|
||||
|
||||
"pulseaudio" = {
|
||||
# scroll-step = 1; # %, can be a float
|
||||
reverse-scrolling = 1;
|
||||
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 = "kitty --class pulsemixer -e pulsemixer";
|
||||
min-length = 13;
|
||||
};
|
||||
|
||||
"custom/mem" = {
|
||||
format = "{} ";
|
||||
interval = 3;
|
||||
exec = "free -h | awk '/Mem:/{printf $3}'";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"cpu" = {
|
||||
interval = 2;
|
||||
format = "{usage}% ";
|
||||
min-length = 6;
|
||||
};
|
||||
|
||||
"temperature" = {
|
||||
# thermal-zone = 2;
|
||||
# hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
|
||||
critical-threshold = 80;
|
||||
# format-critical = "{temperatureC}°C {icon}";
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = ["" "" "" "" ""];
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"network" = {
|
||||
format = "{ifname}";
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-ethernet = "{ifname} ";
|
||||
format-disconnected = "";
|
||||
tooltip-format = "{ifname}";
|
||||
tooltip-format-wifi = "{essid} ({signalStrength}%) ";
|
||||
tooltip-format-ethernet = "{ifname} ";
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
max-length = 50;
|
||||
on-click = "kitty --class nmtui -e sh -c nmtui";
|
||||
};
|
||||
|
||||
"backlight" = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [""];
|
||||
min-length = 7;
|
||||
};
|
||||
|
||||
battery = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}%";
|
||||
format-charging = "{capacity}% {time}";
|
||||
format-plugged = "{capacity}%";
|
||||
format-alt = "{time}";
|
||||
format-time = "{H}:{m}";
|
||||
};
|
||||
|
||||
mpris = {
|
||||
format = "{title}";
|
||||
format-len = "20";
|
||||
};
|
||||
|
||||
tray = {
|
||||
icon-size = 16;
|
||||
spacing = 0;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
style = /*css*/
|
||||
''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: JetBrains Mono;
|
||||
font-weight: bold;
|
||||
min-height: 20px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin-right: 8px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
transition: none;
|
||||
color: #${colors.base04};
|
||||
background: transparent;
|
||||
padding: 5px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#workspaces button.persistent {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
#workspaces button:hover {
|
||||
transition: none;
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
border-radius: inherit;
|
||||
color: #${colors.base05};
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: #${colors.base02};
|
||||
color: #${colors.base05};
|
||||
border-radius: inherit;
|
||||
}
|
||||
|
||||
#taskbar {
|
||||
border-radius: 10px;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
transition: none;
|
||||
background: transparent;
|
||||
border-radius: 10px;
|
||||
padding: 8px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
transition: none;
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
border-radius: inherit;
|
||||
background: #${colors.base02};
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background: ${active_color};
|
||||
}
|
||||
|
||||
#language {
|
||||
padding: 8px 0px 8px 8px;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
margin-right: 8px;
|
||||
padding: 8px 8px 8px 0px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#custom-pacman {
|
||||
padding-left: 16px;
|
||||
padding-right: 8px;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#custom-mail {
|
||||
margin-right: 8px;
|
||||
padding-right: 16px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#submap {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#clock {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#network {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #${colors.base00};
|
||||
background-color: #${colors.base08};
|
||||
}
|
||||
|
||||
#custom-weather {
|
||||
padding-right: 16px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: #${colors.base08};
|
||||
color: #${colors.base01};
|
||||
}
|
||||
|
||||
#custom-mem {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#cpu {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#temperature {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #${colors.base08};
|
||||
}
|
||||
|
||||
#backlight {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#battery {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: #${colors.base05};
|
||||
background-color: #${colors.base0B};
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
background-color: #${colors.base09};
|
||||
color: black;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #${colors.base08};
|
||||
color: #${colors.base05};
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#tray {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #${colors.base05};
|
||||
background: #${colors.base00};
|
||||
}
|
||||
|
||||
#mpris{
|
||||
background: #${colors.base00};
|
||||
border-radius: 10px;
|
||||
color: #${colors.base05};
|
||||
padding: 0px 8px;
|
||||
margin: 0px 8px;
|
||||
}
|
||||
|
||||
#mpris.playing {
|
||||
background-color: #${colors.base0B};
|
||||
color: #${colors.base01};
|
||||
}
|
||||
|
||||
#mpris.paused {
|
||||
background-color: #${colors.base0A};
|
||||
color: #${colors.base01};
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #${colors.base05};
|
||||
color: #${colors.base00};
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
../../modules/bundle.nix
|
||||
|
||||
../../packages/desktop.nix
|
||||
../../packages/art.nix
|
||||
|
||||
./modules/aagl.nix
|
||||
./modules/git.nix
|
||||
./modules/hyprland.nix
|
||||
./modules/style.nix
|
||||
./modules/waybar.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home = {
|
||||
username = "chest";
|
||||
homeDirectory = "/home/chest";
|
||||
stateVersion = "23.11";
|
||||
|
||||
packages = with pkgs; [
|
||||
nautilus
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
let
|
||||
aagl-gtk-on-nix = import (
|
||||
builtins.fetchTarball {
|
||||
url = "https://github.com/ezKEa/aagl-gtk-on-nix/archive/main.tar.gz";
|
||||
sha256 = "14fnbcvmr1b8jkkjfbyarljwawgh3as9skdyvyc10b1nqh0641h0";
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
home.packages = [ aagl-gtk-on-nix.the-honkers-railway-launcher ];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, config, ... }: {
|
||||
imports = [(
|
||||
import ../../../patterns/waybar.nix {
|
||||
inherit pkgs;
|
||||
inherit config;
|
||||
active_color = "#d197d9";
|
||||
}
|
||||
)];
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
../../modules/bundle.nix
|
||||
../../modules/hyprlock.nix
|
||||
|
||||
../../packages/coding.nix
|
||||
../../packages/desktop.nix
|
||||
../../packages/utils.nix
|
||||
../../packages/art.nix
|
||||
|
||||
./modules/git.nix
|
||||
./modules/hyprland.nix
|
||||
./modules/style.nix
|
||||
./modules/waybar.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home = {
|
||||
username = "sweetbread";
|
||||
homeDirectory = "/home/sweetbread";
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
|
||||
services.syncthing.enable = true;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, config, ... }: {
|
||||
imports = [(
|
||||
import ../../../patterns/waybar.nix {
|
||||
inherit pkgs;
|
||||
inherit config;
|
||||
active_color = "#${config.lib.stylix.colors.base0B}";
|
||||
}
|
||||
)];
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{ config, pkgs, pkgs-stable, lib, inputs, ...}: {
|
||||
imports = [
|
||||
./secrets/secrets.nix
|
||||
./modules/aagl.nix
|
||||
./modules/grub.nix
|
||||
./modules/zram.nix
|
||||
../modules/nvidia.nix
|
||||
|
||||
(import ../modules/common.nix {
|
||||
inherit lib;
|
||||
inherit inputs;
|
||||
hostname = "Eclipse";
|
||||
})
|
||||
|
||||
(import ../../user/common.nix {
|
||||
inherit config;
|
||||
inherit pkgs;
|
||||
inherit pkgs-stable;
|
||||
inherit lib;
|
||||
inherit inputs;
|
||||
name = "chest";
|
||||
})
|
||||
];
|
||||
|
||||
nixpkgs.config.allowBroken = true;
|
||||
programs.gamemode.enable = true;
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,29 @@
|
||||
{ inputs, ... }: {
|
||||
imports = [ inputs.aagl.nixosModules.default ];
|
||||
nix.settings = inputs.aagl.nixConfig; # Set up Cachix
|
||||
programs.honkers-railway-launcher.enable = true;
|
||||
networking.hosts."0.0.0.0" = [
|
||||
"overseauspider.yuanshen.com"
|
||||
"log-upload-os.hoyoverse.com"
|
||||
"log-upload-os.mihoyo.com"
|
||||
"dump.gamesafe.qq.com"
|
||||
|
||||
"apm-log-upload-os.hoyoverse.com"
|
||||
"zzz-log-upload-os.hoyoverse.com"
|
||||
|
||||
"log-upload.mihoyo.com"
|
||||
"devlog-upload.mihoyo.com"
|
||||
"uspider.yuanshen.com"
|
||||
"sg-public-data-api.hoyoverse.com"
|
||||
"hkrpg-log-upload-os.hoyoverse.com"
|
||||
"public-data-api.mihoyo.com"
|
||||
|
||||
"prd-lender.cdp.internal.unity3d.com"
|
||||
"thind-prd-knob.data.ie.unity3d.com"
|
||||
"thind-gke-usc.prd.data.corp.unity3d.com"
|
||||
"cdp.cloud.unity3d.com"
|
||||
"remote-config-proxy-prd.uca.cloud.unity3d.com"
|
||||
|
||||
"pc.crashsight.wetest.net"
|
||||
];
|
||||
}
|
||||
File renamed without changes.
@@ -2,7 +2,7 @@
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "lz4";
|
||||
memoryPercent = 100;
|
||||
memoryPercent = 125;
|
||||
priority = 999;
|
||||
};
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data: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 truncated
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Qzg2bGx2eDExZ0F2VWxp\nb1BET1BBRE9UcUM5cGRGdTd1U0w1TStNa1RVCnpYK0E4Y1I0ejJKeXlRQnZWUTZt\nNUhFajA1YnhDYjA4SmxRUVlIVzFuUkEKLS0tIDNxSnZDN3BXUDVPcDRhbDF5Z1d0\nYmxvM1N4RlFhcCtQdWNxdUlaeTkwUkUKUrm1CalGhI39U7VFhv+QM5AkXDLyJVLW\nga4G9umSUxNsEboXRkLn6bmzvfZRn21z8uq/ZlrldbDk02p7zUNkyQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-12-26T15:53:41Z",
|
||||
"mac": "ENC[AES256_GCM,data:b+EuQLffrp+X+fVw80dUe4EQEsyZoUnX40J3/d5XGj7txweQNZZfIFt9RzoG+t3W12dr/o2R87xfMawuTPXvDoAYbfkLrQu7bv9MT7VGgmreBtdDiEm4c3MPxuYnBWOh+nkoMZOXXzC4/wcbZ1NnWlqp0gt/hJYVad/GgrhtPK0=,iv:rRljq/VV0oYacbQxh5psv3x3gCAmvVR9drsuAFXrtB8=,tag:L4M4Cnsl6bunhQxoYYX8+g==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{ config, pkgs, pkgs-stable, lib, inputs, ...}: {
|
||||
imports = [
|
||||
./secrets/secrets.nix
|
||||
./modules/grub.nix
|
||||
./modules/syncthing.nix
|
||||
../../modules/host/adb.nix
|
||||
../modules/nvidia.nix
|
||||
|
||||
(import ../modules/common.nix {
|
||||
inherit lib;
|
||||
inherit inputs;
|
||||
hostname = "Rias";
|
||||
})
|
||||
|
||||
(import ../../user/common.nix {
|
||||
inherit config;
|
||||
inherit pkgs;
|
||||
inherit pkgs-stable;
|
||||
inherit lib;
|
||||
inherit inputs;
|
||||
name = "sweetbread";
|
||||
fullname = "Sweet Bread";
|
||||
})
|
||||
];
|
||||
|
||||
programs.gamemode.enable = true;
|
||||
}
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,38 @@
|
||||
{ config, ... }: {
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
openDefaultPorts = true;
|
||||
|
||||
user = "sweetbread";
|
||||
dataDir = "/home/sweetbread/.config/syncthing";
|
||||
|
||||
key = config.sops.secrets.syncthing_key.path;
|
||||
cert = config.sops.secrets.syncthing_cert.path;
|
||||
|
||||
settings = {
|
||||
devices = {
|
||||
Akeno = { id = "YVFVE2M-GSCKJBJ-AMC5JM3-AOMCVNP-RLFAWEZ-35VP4HP-DGP5QD2-6QWEZQW"; };
|
||||
Koneko = { id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB"; };
|
||||
};
|
||||
|
||||
folders = {
|
||||
"Books" = {
|
||||
path = "/mnt/D/SyncThing/Books";
|
||||
devices = [ "Akeno" "Koneko" ];
|
||||
};
|
||||
|
||||
".RPI" = {
|
||||
path = "/mnt/D/SyncThing/.RPI";
|
||||
devices = [ "Akeno" "Koneko" ];
|
||||
};
|
||||
|
||||
"Music" = {
|
||||
path = "/home/sweetbread/Music";
|
||||
devices = [ "Akeno" "Koneko" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
sops = {
|
||||
age.keyFile = "/root/age.key";
|
||||
secrets = {
|
||||
vpn_bolt = {
|
||||
format = "binary";
|
||||
sopsFile = ./vpn_bolt.db;
|
||||
};
|
||||
|
||||
syncthing_cert = {
|
||||
format = "binary";
|
||||
sopsFile = ./syncthing_cert.pem;
|
||||
};
|
||||
syncthing_key = {
|
||||
format = "binary";
|
||||
sopsFile = ./syncthing_key.pem;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:FrQVoWDaUZUh8OfSjJ4f1TsPutY6PyMTIPYgWfG1wg/t8orJC52QsoZEabj46tIcLDSJaGSETf3lvCXnmesFAeqUuMK4axAcqPSBRd+kSoCSg/KzHdkQD5C4JiYWUWdIdvMYMUz086mFiHSyyzvbPYCAKrWYtQsQcJPEYmuvQl/0vFPjquR9Mla+/89MXebWBSGys43PKzQUfWjgrLmR7v2ac7lbRxnhBNP/eGayM4auzZVCtLV0UBs3TS5GTPSKAcQeAmmHbzdRJg8vVM1deKv9s/Tjy3ygRthqjCuVF2xcLetb2SDhYKMcgZRXT+AtnEyiV72wxqaExtWsUjJvR8b7COsFpBWbXT+AY+FkSKaGz00DaXncBKSP/zmiUYyaMplvQESFlIpduzF/DRuyQrq+KAwnJZql0rlvfzcEYgQKJENeQwHAq8Itu+HcHzmCEbY4d+LvEznEwlQ6eL6y3tNzoWzfhRQUz4Ki+54DPLGlGtOe9dTM8cWHtl/mZniNzY6FXNiEqbHrepzq7WEXSPi69Hj2OfdvSTQX4HMnp5Tw0i95zhfHDmzp62Kr6YLj0KYZsj6gsC3/6SYB0YNn5pMo1IpBonJxyKeAUz9NvrMcy1/7z/h9OOejPPM3xm48XJ4/7mMhOyB13VPYMZZMUajqUgu2qdGgDxl+DY140LAoQ8bRs3wvTwCwZuCA9Fj4gtn4+04EIil+lPjwEYH/2VIX4MmhxlyxZ2ECAqWf9LJgRy+3asvE8qPxmXNLSd1JqThAYoezJOZf6T5blzOwaXKzmom1hAtkptVjz+fvudwSZQcMOBnrSI1lkWeaeTFvQQOe4jUhaRB83NfbSpm6CFhqHJKjDorP6L5zwOx663YyJcZB2sAcotKGzDi3lQqfh8HGmrGLnc1+J+d9L7NbccgsfWYzfk04tqwv6WI+rpXqR0HlLyg+SDjtl49tuC1c6U9atNKPpyuqWHW2DiM8dgERmJfNz8OGjK2mnU7onGeUyrBvXrIcfe+z/fuymzJ5eHnU3VfMxz9Py97AK7M7KN/tRhR7Grx6Sqs=,iv:imkydsFKhiTrqyi1rXidCLCDGtL8RuY6ZiiiHyMFeAg=,tag:HwvqV4xt0nQZb1El+XrO+w==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5TGk2MWdnZzc3UVZ2Ui9w\nVWgxcFJDUThhM0pDbVR1ZXd6U3BhLzM0U1ZNClJpaHlCdU9mTURKSzdSbE52SFR6\ncUdzVkJ2MElNUHg3UzJHc0tNb3dJamMKLS0tIGErZXJGOXFLUCt1SG93aW01aEEw\nTmNiN1VUUUp2TWlKTlpDWDVwVUk2VjgKpUD72/hlXLEzciW/kewu0hZanGA8+Gfh\ndCro8OOJaOe2INCrioOL9kMZvdpxq96fw+kir1FkkJBkepJgcdCTgA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-12-17T12:28:22Z",
|
||||
"mac": "ENC[AES256_GCM,data:n4Bj/FaPaN+IyVXz8Bmu+tfuULxcJpDnAiYhGawMhbfFCL2tGFVi7G0WdnopdSrZV++9iZnb4z5a/al1WbmIIy/iJS7v2EKNzK08U9xdJDKgEQKXJms/df13f/FRDxV3nfCHX8UBtSJNdcXBY5O77o+VUUcjkpbzVrwWjAaMcOk=,iv:5z25Ereng1O47fk8w4OA52Gk4CAqW2Ot97Cp7UR0zqw=,tag:h9WL5ESZwd9BCa7bbUahOg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:6VJ1TgANh3bVkWEsPFQYFLjdrbsggQ3mCOpLWIo7Q9hCxsUeI0sL4npsXAVoEfTndWkv1zBgzVjzw+KcY8IDu27uTwguPrPk/R0T1aAa1Y8LEoOVmqZVw6GxiiqEYVcbOERkSi3kFSocynzFljDAqPnaYUVoAkB9mFPtO5KeXMjKXMtkJhcFjPkIzLzcHHBEeVUynn4utQaKspj6xVWc+NX/+G+Oh4kfm4RJyD/v5WEWQh2bFtiVwLhgRNiw210SuFZJqst8SoAXjG3LivpAJXapnn1xC3t8Vn4RXHC+JVl/7amDkGY+GOK+k68ou0TS+dWMAEZhiVWsOToeb4C5wPbvDADNRFx78HORsKprAcPgOvYkvaDX+A242KVz4w9j,iv:uD6GkozkTM4mP0jfQ9+oNN4o/kMiscYbggF0Lgum3Wk=,tag:CHO2KBgWnRQ9zvYC4br38A==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3di9JS0g0cUFxK1cwSkU3\nTmdHRW5NTjQzWWtSR2xYUnlEOG1va3BhY3k0CnRrZkRydGQ0SkczVTB0TkRDejVt\nS0NweDBuNDErNUVjazRTQ1RFYks4NWcKLS0tIGRPL1Z1aWNyS0FBSnZhZWFCWHBS\nVzhLYUdkNWhyVEx2aGtuWGZHM3J2Uk0KrZsGNRPlUB02xJvNeD3VFbRIVAL8bnei\nxS/mwnx6V2o+yJX7RHEj7D466L6zzm0CtDaz7PT4vyJxDBjpRuMBhg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-12-17T12:28:38Z",
|
||||
"mac": "ENC[AES256_GCM,data:g/WhHfiukviJDExEsVFo4JOkVayeZEZpexmEvUn2IOGQ13qTD1rVakR/0cF/XowxsiCBwicn5Fc5FRFe696MBzIyetNNt75jWKC/tasWGk5khrQI6Jwj3kt1nmsQmdahQ4shmjfiLmeELy8fGBe7ASCvu+gZCEfg8OaZRRxmh/E=,iv:S1FlplJsJcsv4Cm8AOYfW15rFE7a5bcUBej7hp6tnNI=,tag:AdgkSbl5ikGnpvG9Z4D9Sg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data: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 truncated
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0VURIZlNxcnpJRGtxNmlj\nTCtKTW1FNHZBdTh4TDBLZE85N05Td1JlS3ljCk1SUTg5T29Kc1RaTmNBajRjWHBk\nSzJQay9SYTZVRHkxVlBlQmRFLzBlTGMKLS0tIFk2RkNBRUZid2dVZTBrNUQyVGs4\nUDlvZjZrcUw1TU9RU3hDZ3ZCcWZnTmMK95HDi6MlGesfJzX+GWvJRnP7MxtLv9Z5\nwKH9F23gXF6vpTvzPz34KaTlgyVz3HfT/LryXjPSNg7s1vTJeFIDyw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-12-26T16:14:23Z",
|
||||
"mac": "ENC[AES256_GCM,data:zbtRtU4Tjz9Oghx1Ctl9KeCQdnMgWWIZGBcZ3hEqsvcjp9AM9DtX4XLWEv1HA2G7XAbr2f2E2bRbnUkln5nx9I77KPsed9ADADYi711Sj3E60XhpCalHd3xCBJCPSE4fT0gSaB87ISzVWM0JaVrmLkDDi7EYpucfqKEFRMNVQgU=,iv:sPoaevJt72UbPb0VDKAT3+xDKhZ/9XQWEzg5jQmYCuM=,tag:QWeuTJv+MG6p1vXmmBgqFg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{ config, pkgs, pkgs-stable, lib, inputs, ...}: {
|
||||
imports = [
|
||||
./secrets/secrets.nix
|
||||
./modules/grub.nix
|
||||
../modules/nvidia.nix
|
||||
|
||||
(import ../modules/common.nix {
|
||||
inherit lib;
|
||||
inherit inputs;
|
||||
hostname = "Senko";
|
||||
})
|
||||
|
||||
(import ../../user/common.nix {
|
||||
inherit config;
|
||||
inherit pkgs;
|
||||
inherit pkgs-stable;
|
||||
inherit lib;
|
||||
inherit inputs;
|
||||
name = "sweetbread";
|
||||
fullname = "Sweet Bread";
|
||||
})
|
||||
];
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
host.laptop = true;
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }: let
|
||||
theme = pkgs.fetchFromGitHub {
|
||||
owner = "Patato777";
|
||||
repo = "dotfiles";
|
||||
rev = "cc363921707807d7ad3e36b462f0df793a0fe18a";
|
||||
hash = "sha256-fpXGFNrzbV6K9hoZRX4tGieTLzhpPeGm6wn8CF4OGow=";
|
||||
};
|
||||
in {
|
||||
boot.loader.grub = {
|
||||
gfxmodeEfi = "1920x1080";
|
||||
theme = "${theme}/grub/themes/virtuaverse";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
sops = {
|
||||
age.keyFile = "/root/age.key";
|
||||
secrets = {
|
||||
vpn_bolt = {
|
||||
format = "binary";
|
||||
sopsFile = ./vpn_bolt.db;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../Rias/secrets/vpn_bolt.db
|
||||
@@ -0,0 +1,20 @@
|
||||
{ lib, inputs, hostname }: {
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
../${hostname}/hardware-configuration.nix
|
||||
../../modules/host.nix
|
||||
./packages.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
host.laptop = lib.mkEnableOption "laptop mode";
|
||||
};
|
||||
|
||||
config = {
|
||||
networking.hostName = hostname;
|
||||
time.timeZone = lib.mkDefault "Europe/Moscow";
|
||||
i18n.defaultLocale = lib.mkDefault "ru_RU.UTF-8";
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
system.stateVersion = "23.05";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{ config, pkgs, lib, ... }: {
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [nvidia-vaapi-driver intel-media-driver];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver];
|
||||
};
|
||||
|
||||
nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
finegrained = false;
|
||||
};
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
|
||||
prime = lib.optionalAttrs config.host.laptop {
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{ pkgs, inputs, ... }: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
file
|
||||
tree
|
||||
wget
|
||||
git
|
||||
(btop.override { cudaSupport = true; })
|
||||
unzip
|
||||
yazi
|
||||
zip
|
||||
lazygit
|
||||
httpie
|
||||
ncdu
|
||||
tldr
|
||||
helix
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
jetbrains-mono
|
||||
noto-fonts
|
||||
(google-fonts.override{fonts=["Press Start 2P" "Overpass Mono"];})
|
||||
noto-fonts-emoji
|
||||
noto-fonts-cjk-sans
|
||||
twemoji-color-font
|
||||
font-awesome
|
||||
powerline-fonts
|
||||
powerline-symbols
|
||||
ubuntu_font_family
|
||||
unifont
|
||||
nerd-fonts.symbols-only
|
||||
corefonts
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
imports = [
|
||||
./host/bluetooth.nix
|
||||
./host/bootloader.nix
|
||||
./host/console.nix
|
||||
./host/db.nix
|
||||
./host/env.nix
|
||||
./host/gamemode.nix
|
||||
./host/gpg.nix
|
||||
./host/laptop.nix
|
||||
./host/printing.nix
|
||||
./host/shutdown-on-lan.nix
|
||||
./host/sound.nix
|
||||
./host/virtmanager.nix
|
||||
./host/vpn.nix
|
||||
];
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
services = {
|
||||
udisks2.enable = true;
|
||||
fstrim.enable = true;
|
||||
upower.enable = true;
|
||||
};
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
File renamed without changes.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
{ config, lib, ... }: {
|
||||
hardware.bluetooth =
|
||||
lib.mkIf config.hardware.bluetooth.enable {
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
@@ -2,21 +2,18 @@
|
||||
boot = {
|
||||
loader = {
|
||||
timeout = 3;
|
||||
# systemd-boot.enable = true;
|
||||
efi.efiSysMountPoint = "/boot";
|
||||
efi = {
|
||||
efiSysMountPoint = "/boot";
|
||||
canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
grub = {
|
||||
enable = true;
|
||||
efiSupport = true;
|
||||
efiInstallAsRemovable = true;
|
||||
device = "nodev";
|
||||
useOSProber = true;
|
||||
};
|
||||
# efi.canTouchEfiVariables = true;
|
||||
};
|
||||
# initrd = {
|
||||
# verbose = false;
|
||||
# # systemd.enable = true;
|
||||
# };
|
||||
consoleLogLevel = 0;
|
||||
kernelParams = [
|
||||
# "quiet"
|
||||
@@ -31,7 +28,6 @@
|
||||
enable = true;
|
||||
theme = "black_hud";
|
||||
themePackages = with pkgs; [
|
||||
# By default we would install all themes
|
||||
(adi1090x-plymouth-themes.override {
|
||||
selected_themes = [ "black_hud" ];
|
||||
})
|
||||
@@ -0,0 +1,23 @@
|
||||
{ pkgs, ... }: {
|
||||
console = {
|
||||
font = "${pkgs.kbd}/share/consolefonts/LatArCyrHeb-19.psfu.gz";
|
||||
colors = [
|
||||
"16161E"
|
||||
"1A1B26"
|
||||
"2F3549"
|
||||
"444B6A"
|
||||
"787C99"
|
||||
"787C99"
|
||||
"CBCCD1"
|
||||
"D5D6DB"
|
||||
"F7768E"
|
||||
"FF9E64"
|
||||
"E0AF68"
|
||||
"41A6B5"
|
||||
"7DCFFF"
|
||||
"7AA2F7"
|
||||
"BB9AF7"
|
||||
"D18616"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{ lib, ... }:{
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "mydatabase" ];
|
||||
authentication = lib.mkOverride 10 ''
|
||||
#type database DBuser auth-method
|
||||
local all all trust
|
||||
'';
|
||||
};
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,21 @@
|
||||
{ config, pkgs, pkgs-stable, lib, ... }:
|
||||
|
||||
lib.mkIf config.programs.gamemode.enable {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs-stable; [
|
||||
mangohud
|
||||
protonup
|
||||
pkgs.bottles
|
||||
heroic
|
||||
pkgs.prismlauncher
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS =
|
||||
"\${HOME}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,19 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
lib.mkIf config.host.laptop {
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
|
||||
CPU_MIN_PERF_ON_AC = 0;
|
||||
CPU_MAX_PERF_ON_AC = 100;
|
||||
CPU_MIN_PERF_ON_BAT = 0;
|
||||
CPU_MAX_PERF_ON_BAT = 75;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
lib.mkIf config.services.printing.enable {
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,17 @@
|
||||
{
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services = {
|
||||
pulseaudio.enable = false;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
|
||||
pulse.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{ pkgs, ... }: {
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
environment.etc = {
|
||||
"v2raya/ru_geoip.dat".source = pkgs.fetchurl {
|
||||
name = "geoip.dat";
|
||||
url = "https://github.com/runetfreedom/russia-blocked-geoip/releases/download/202411071531/geoip.dat";
|
||||
hash = "sha256-BBQUTzUIWpSjFxv3R6hGfoE+WTeNcVpc7Ge3eOCKxuY=";
|
||||
url = "https://github.com/runetfreedom/russia-blocked-geoip/releases/download/202502081519/geoip.dat";
|
||||
hash = "sha256-uzv+aNlTD/UycNK2WWbI9timBbaFLAK3ME/lOrzpFdg=";
|
||||
};
|
||||
|
||||
"v2raya/bolt.db".source = config.sops.secrets.vpn_bolt.path;
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
imports = [
|
||||
./user/qt.nix
|
||||
./user/sops.nix
|
||||
./user/neofetch.nix
|
||||
./user/yazi.nix
|
||||
./user/ags.nix
|
||||
./user/zsh.nix
|
||||
./user/helix.nix
|
||||
./user/hyprlock.nix
|
||||
./user/btop.nix
|
||||
./user/wofi.nix
|
||||
./user/mako.nix
|
||||
./user/ghostty.nix
|
||||
./user/packages/art.nix
|
||||
./user/packages/desktop.nix
|
||||
./user/packages/coding.nix
|
||||
./user/packages/utils.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{ config, inputs, pkgs, ... }: {
|
||||
imports = [ inputs.ags.homeManagerModules.default ];
|
||||
|
||||
programs.ags = {
|
||||
enable = true;
|
||||
|
||||
configDir = null;
|
||||
|
||||
extraPackages = with inputs.ags.packages.${pkgs.system}; [
|
||||
battery
|
||||
mpris
|
||||
hyprland
|
||||
network
|
||||
tray
|
||||
wireplumber
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
pulsemixer
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [ "ags run" ];
|
||||
|
||||
xdg.configFile."ags".source = (pkgs.callPackage ./packages/drvs/ags.nix { colors = config.lib.stylix.colors; });
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
package = pkgs.btop.override { cudaSupport = true; };
|
||||
settings = {
|
||||
shown_boxes = "proc cpu gpu0 mem net";
|
||||
# color_theme = "TTY";
|
||||
update_ms = 1000;
|
||||
cpu_single_graph = true;
|
||||
only_physical = false;
|
||||
net_auto = false;
|
||||
net_iface = "eno1";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
confirm-close-surface = false;
|
||||
copy-on-select = false;
|
||||
title-report = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
settings = {
|
||||
# theme = "catppuccin-mocha";
|
||||
editor = {
|
||||
insert-final-newline = false;
|
||||
whitespace.render = {
|
||||
space = "all";
|
||||
tab = "all";
|
||||
@@ -1,4 +1,6 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
lib.mkIf config.programs.hyprlock.enable {
|
||||
wayland.windowManager.hyprland.settings.exec-once = [ "hyprlock" ];
|
||||
|
||||
programs.hyprlock = let
|
||||
@@ -8,12 +10,9 @@
|
||||
hash = "sha256-wRFs/Inw1wEzF5UKFn/o6e/xH5ZJ3SVNxxno+mDx2Fs=";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
background = {
|
||||
path = lib.mkForce "${image}";
|
||||
color = "rgba(25, 20, 20, 1.0)";
|
||||
blur_passes = 0;
|
||||
blur_size = 7;
|
||||
noise = 0.0117;
|
||||
@@ -58,17 +57,12 @@
|
||||
dots_center = false;
|
||||
dots_rounding = -1;
|
||||
dots_fade_time = 200;
|
||||
# outer_color = "rgb(151515)";
|
||||
# inner_color = "rgb(200, 200, 200)";
|
||||
# font_color = "rgb(10, 10, 10)";
|
||||
font_family = "Noto Sans";
|
||||
fade_on_empty = true;
|
||||
fade_timeout = 1000;
|
||||
placeholder_text = "<i>Input Password...</i>";
|
||||
hide_input = false;
|
||||
rounding = -1;
|
||||
# check_color = "rgb(204, 136, 34)";
|
||||
# fail_color = "rgb(204, 34, 34)";
|
||||
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
||||
fail_timeout = 2000;
|
||||
fail_transition = 300;
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,6 @@
|
||||
{ pkgs-stable, ... }: {
|
||||
home.packages = with pkgs-stable; [
|
||||
(blender.override { cudaSupport = true; })
|
||||
aseprite
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ pkgs, pkgs-stable, ... }: {
|
||||
home.packages = with pkgs-stable; [
|
||||
vscode
|
||||
jetbrains.pycharm-community
|
||||
jetbrains.idea-community
|
||||
android-studio
|
||||
];
|
||||
}
|
||||
@@ -1,11 +1,12 @@
|
||||
{ pkgs, inputs, ... }: {
|
||||
{ pkgs, inputs, pkgs-stable, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
google-chrome
|
||||
inputs.ayugram-desktop.packages.${pkgs.system}.ayugram-desktop
|
||||
vesktop
|
||||
pkgs-stable.vesktop
|
||||
obs-studio
|
||||
mpv
|
||||
obsidian
|
||||
thunderbird
|
||||
libreoffice
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{ stdenv, lib, config, colors, ... }:
|
||||
stdenv.mkDerivation {
|
||||
name = "AGS theme";
|
||||
|
||||
src = ./ags;
|
||||
dontUnpack = true;
|
||||
|
||||
patchPhase = ''
|
||||
echo \$bg: \#${colors.base00}\; > colors.scss
|
||||
echo \$surface0: \#${colors.base02}\; >> colors.scss
|
||||
echo \$fg: \#${colors.base05}\; >> colors.scss
|
||||
echo \$accent: \#${colors.base0B}\; >> colors.scss
|
||||
|
||||
echo \#${colors.base0B} > accent.css
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
ls
|
||||
mkdir $out
|
||||
cp $src/* $out -r
|
||||
mv colors.scss $out
|
||||
mv accent.css $out
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
# Simple Bar Example
|
||||
|
||||

|
||||
|
||||
A simple bar for Hyprland using
|
||||
|
||||
- [Battery library](https://aylur.github.io/astal/guide/libraries/battery).
|
||||
- [Hyprland library](https://aylur.github.io/astal/guide/libraries/hyprland).
|
||||
- [Mpris library](https://aylur.github.io/astal/guide/libraries/mpris).
|
||||
- [Network library](https://aylur.github.io/astal/guide/libraries/network).
|
||||
- [Tray library](https://aylur.github.io/astal/guide/libraries/tray).
|
||||
- [WirePlumber library](https://aylur.github.io/astal/guide/libraries/wireplumber).
|
||||
@@ -0,0 +1,13 @@
|
||||
import { App } from "astal/gtk3"
|
||||
import style from "./style.scss"
|
||||
import Bar from "./widget/Bar"
|
||||
|
||||
App.start({
|
||||
css: style,
|
||||
instanceName: "ags",
|
||||
requestHandler(request, res) {
|
||||
print(request)
|
||||
res("ok")
|
||||
},
|
||||
main: () => App.get_monitors().map(Bar),
|
||||
})
|
||||
@@ -0,0 +1,97 @@
|
||||
@use "sass:color";
|
||||
@use "colors.scss" as *;
|
||||
|
||||
$radius: 10px;
|
||||
|
||||
%item {
|
||||
all: unset;
|
||||
background: $bg;
|
||||
border-radius: $radius;
|
||||
padding: 4px;
|
||||
|
||||
& + &, .item + & { margin-left: 4px; }
|
||||
|
||||
label { margin: 0 8px; }
|
||||
}
|
||||
|
||||
window.Bar {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background-color: transparent;
|
||||
color: $fg;
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
|
||||
.Container {
|
||||
margin: 10px 10px 0;
|
||||
}
|
||||
|
||||
.Workspaces {
|
||||
button {
|
||||
all: unset;
|
||||
|
||||
&:hover label {
|
||||
background: $surface0;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
&:active label {
|
||||
background: $surface0;
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
transition: 200ms;
|
||||
padding: 0 6px;
|
||||
margin: 2px;
|
||||
border-radius: $radius;
|
||||
border: 1pt solid transparent;
|
||||
}
|
||||
|
||||
.focused label {
|
||||
background: $accent;
|
||||
color: $bg;
|
||||
border-color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
.Layout.en { color: $accent; }
|
||||
|
||||
.SysTray button {
|
||||
all: unset;
|
||||
padding: 8px;
|
||||
border-radius: inherit;
|
||||
|
||||
&:hover {
|
||||
background: $surface0;
|
||||
}
|
||||
}
|
||||
|
||||
.Media {
|
||||
&.playing {
|
||||
border: 2pt solid $accent;
|
||||
}
|
||||
|
||||
.Cover {
|
||||
min-height: 1.2em;
|
||||
min-width: 1.2em;
|
||||
border-radius: $radius;
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
}
|
||||
}
|
||||
|
||||
.Battery label {
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.Time { padding: 0 8px; }
|
||||
|
||||
.AudioSlider icon { margin-left: 8px; }
|
||||
|
||||
.Workspaces, .Wifi, .Layout, .Media, .SysTray, .AudioSlider, .Battery, .Time {
|
||||
@extend %item;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import { App } from "astal/gtk3"
|
||||
import { Astal, Gtk, Gdk } from "astal/gtk3"
|
||||
|
||||
import Time from "./elements/Time"
|
||||
import Wifi from "./elements/Wifi"
|
||||
import Audio from "./elements/Audio"
|
||||
import Media from "./elements/Media"
|
||||
import Layout from "./elements/Keyboard"
|
||||
import SysTray from "./elements/SysTray"
|
||||
import Workspaces from "./elements/Workspaces"
|
||||
import BatteryLevel from "./elements/Battery"
|
||||
|
||||
|
||||
export default function Bar(monitor: Gdk.Monitor) {
|
||||
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor
|
||||
|
||||
return <window
|
||||
className="Bar"
|
||||
gdkmonitor={monitor}
|
||||
exclusivity={Astal.Exclusivity.EXCLUSIVE}
|
||||
anchor={TOP | LEFT | RIGHT}>
|
||||
<centerbox className="Container">
|
||||
<box hexpand halign={Gtk.Align.START}>
|
||||
<Workspaces />
|
||||
<Layout />
|
||||
</box>
|
||||
<box>
|
||||
<Media />
|
||||
</box>
|
||||
<box hexpand halign={Gtk.Align.END} >
|
||||
<SysTray />
|
||||
<Wifi />
|
||||
<Audio />
|
||||
<BatteryLevel />
|
||||
<Time />
|
||||
</box>
|
||||
</centerbox>
|
||||
</window>
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { bind } from "astal"
|
||||
import { execAsync } from "astal/process"
|
||||
import Wp from "gi://AstalWp"
|
||||
|
||||
export default function Audio() {
|
||||
const speaker = Wp.get_default()?.audio.defaultSpeaker!
|
||||
|
||||
return <button
|
||||
className="AudioSlider"
|
||||
onClicked={() => { execAsync("ghostty --title=pulsemixer -e pulsemixer") }}>
|
||||
<box>
|
||||
<icon icon={bind(speaker, "volumeIcon")} />
|
||||
<label label={bind(speaker, "volume").as(v => `${Math.floor(v*100)}%`)} />
|
||||
</box>
|
||||
</button>
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
import { bind } from "astal";
|
||||
import Battery from "gi://AstalBattery";
|
||||
import accent from "../../accent.css";
|
||||
|
||||
export default function BatteryLevel() {
|
||||
const bat = Battery.get_default();
|
||||
const percent = bind(bat, "percentage").as(p => Math.floor(p * 100));
|
||||
|
||||
return (
|
||||
<box
|
||||
className="Battery"
|
||||
visible={bind(bat, "isPresent")}
|
||||
css={percent.as(p => `
|
||||
background-image: linear-gradient(
|
||||
to right,
|
||||
${accent} 0%,
|
||||
${accent} ${p}%,
|
||||
transparent ${p}%,
|
||||
transparent 100%
|
||||
);
|
||||
background-size: 100% 3px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom;
|
||||
`)}
|
||||
>
|
||||
<icon icon={bind(bat, "batteryIconName")} />
|
||||
<label label={percent.as(p => `${p}%`)} />
|
||||
</box>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Variable, bind } from "astal"
|
||||
import Hyprland from "gi://AstalHyprland"
|
||||
|
||||
export default function Layout() {
|
||||
const hl = Hyprland.get_default();
|
||||
let layout = Variable("en");
|
||||
hl.connect("keyboard-layout", (_, __, l) => { layout.set(`${l}`.slice(0, 2).toLowerCase()) })
|
||||
|
||||
return <box className={bind(layout).as((l) => `Layout ${l}`)}>
|
||||
<label label={bind(layout)}/>
|
||||
</box>
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import { Variable, bind } from "astal"
|
||||
import { Gtk } from "astal/gtk3"
|
||||
import Mpris from "gi://AstalMpris"
|
||||
|
||||
export default function Media() {
|
||||
const mpris = Mpris.get_default()
|
||||
// console.log(bind(mpris, "players").as(ps => ps[0] ? `${ps[0].title} ${ps[0].artist} ${ps[0].get_playback_status()}` : "-"));
|
||||
|
||||
return <box>
|
||||
{bind(mpris, "players").as(ps => ps[0] ? (
|
||||
<button
|
||||
className={bind(ps[0], "playback-status").as(s => s == 0 ? "Media playing" : "Media")}
|
||||
onClicked={() => ps[0].play_pause()}>
|
||||
<box>
|
||||
<box
|
||||
className="Cover"
|
||||
valign={Gtk.Align.CENTER}
|
||||
css={bind(ps[0], "coverArt").as(cover =>
|
||||
`background-image: url('${cover}');`
|
||||
)}
|
||||
/>
|
||||
<label
|
||||
label={bind(ps[0], "title").as(() =>ps[0].title.length < 80 ? ps[0].title : `${ps[0].title.slice(0, 77)}...`)}
|
||||
/>
|
||||
</box>
|
||||
</button>
|
||||
) : ("") )}
|
||||
</box>
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import { bind } from "astal"
|
||||
import Tray from "gi://AstalTray"
|
||||
|
||||
export default function SysTray() {
|
||||
const tray = Tray.get_default()
|
||||
|
||||
return <box className="item">
|
||||
{bind(tray, "items").as(i => (i.length > 0) ? (
|
||||
<box className="SysTray">
|
||||
{bind(tray, "items").as(items => items.map(item => (
|
||||
<menubutton
|
||||
tooltipMarkup={bind(item, "tooltipMarkup")}
|
||||
usePopover={false}
|
||||
actionGroup={bind(item, "action-group").as(ag => ["dbusmenu", ag])}
|
||||
menuModel={bind(item, "menu-model")}>
|
||||
<icon gicon={bind(item, "gicon")} />
|
||||
</menubutton>
|
||||
)))}
|
||||
</box>
|
||||
) : ("") )}
|
||||
</box>
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Variable, GLib } from "astal"
|
||||
|
||||
export default function Time({ format = "%e %b - %H:%M %a" }) {
|
||||
const time = Variable<string>("").poll(1000, () =>
|
||||
GLib.DateTime.new_now_local().format(format)!)
|
||||
|
||||
return <label
|
||||
className="Time"
|
||||
onDestroy={() => time.drop()}
|
||||
label={time()}
|
||||
/>
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import { bind } from "astal"
|
||||
import Network from "gi://AstalNetwork"
|
||||
import { execAsync } from "astal/process"
|
||||
|
||||
export default function Wifi() {
|
||||
const network = Network.get_default()
|
||||
const wifi = bind(network, "wifi")
|
||||
|
||||
return <box visible={wifi.as(Boolean)}>
|
||||
{wifi.as(wifi => wifi && (
|
||||
<button
|
||||
className="Wifi"
|
||||
onClicked={() => {execAsync("ghostty --title=nmtui -e nmtui")}}>
|
||||
<box>
|
||||
<icon
|
||||
tooltipText={bind(wifi, "ssid").as(String)}
|
||||
icon={bind(wifi, "iconName")}
|
||||
/>
|
||||
<label
|
||||
label={bind(wifi, "ssid").as(String)}
|
||||
/>
|
||||
</box>
|
||||
</button>
|
||||
))}
|
||||
</box>
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { bind } from "astal"
|
||||
import Hyprland from "gi://AstalHyprland"
|
||||
|
||||
export default function Workspaces() {
|
||||
const hypr = Hyprland.get_default()
|
||||
|
||||
return <box className="Workspaces">
|
||||
{bind(hypr, "workspaces").as(wss => wss
|
||||
.filter(ws => !(ws.id >= -99 && ws.id <= -2)) // filter out special workspaces
|
||||
.sort((a, b) => a.id - b.id)
|
||||
.map(ws => (
|
||||
<button
|
||||
className={bind(hypr, "focusedWorkspace").as(fw =>
|
||||
ws === fw ? "focused" : "")}
|
||||
onClicked={() => ws.focus()}>
|
||||
{ws.id}
|
||||
</button>
|
||||
))
|
||||
)}
|
||||
</box>
|
||||
}
|
||||
@@ -9,6 +9,16 @@
|
||||
imv
|
||||
gromit-mpx
|
||||
notify-desktop
|
||||
inputs.tlock.packages.${system}.default
|
||||
rtorrent
|
||||
gparted
|
||||
git-lfs
|
||||
unrar
|
||||
hexyl
|
||||
jq
|
||||
litecli
|
||||
trashy
|
||||
dig
|
||||
mtr
|
||||
imagemagick
|
||||
];
|
||||
}
|
||||
@@ -1,13 +1,12 @@
|
||||
{ pkgs, lib, config, collection, swww_flags, inputs }: {
|
||||
home.packages = with pkgs; [
|
||||
swww
|
||||
kitty
|
||||
ghostty
|
||||
pamixer
|
||||
wofi
|
||||
clipse
|
||||
grimblast
|
||||
xclip
|
||||
clipnotify
|
||||
wl-clipboard
|
||||
cliphist
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland =
|
||||
@@ -58,15 +57,15 @@
|
||||
filename = choice(listdir(folder))
|
||||
|
||||
finally:
|
||||
system(f"swww img {folder}/{filename} ${swww_flags}")
|
||||
system(f"${lib.getExe pkgs.swww} img {folder}/{filename} ${swww_flags}")
|
||||
'';
|
||||
|
||||
clipsync = pkgs.writers.writeBash "clipsync" ''
|
||||
while clipnotify; do
|
||||
xclip -q -sel clip -t image/png -o > /dev/null && \
|
||||
xclip -sel clip -t image/png -o | wl-copy
|
||||
xclip -q -sel clip -o > /dev/null && \
|
||||
xclip -sel clip -o | wl-copy
|
||||
while ${lib.getExe pkgs.clipnotify}; do
|
||||
${lib.getExe pkgs.xclip} -q -sel clip -t image/png -o > /dev/null && \
|
||||
${lib.getExe pkgs.xclip} -sel clip -t image/png -o | wl-copy
|
||||
${lib.getExe pkgs.xclip} -q -sel clip -o > /dev/null && \
|
||||
${lib.getExe pkgs.xclip} -sel clip -o | wl-copy
|
||||
done
|
||||
'';
|
||||
in {
|
||||
@@ -75,23 +74,28 @@
|
||||
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
plugins = with inputs.hyprland-plugins.packages.${pkgs.system}; [
|
||||
hyprbars
|
||||
# hyprbars # Version mismatch
|
||||
];
|
||||
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
ecosystem.no_donation_nag = true;
|
||||
|
||||
env = [
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"GBM_BACKEND,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
"WLR_NO_HARDWARE_CURSORS,1"
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"GBM_BACKEND,nvidia"
|
||||
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
"XCURSOR_SIZE,36"
|
||||
"QT_QPA_PLATFORM,wayland"
|
||||
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
|
||||
"WLR_NO_HARDWARE_CURSORS,1"
|
||||
"XCURSOR_SIZE,36"
|
||||
|
||||
"XDG_SCREENSHOTS_DIR,~/screens"
|
||||
];
|
||||
|
||||
@@ -113,7 +117,7 @@
|
||||
natural_scroll = false;
|
||||
};
|
||||
|
||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||
sensitivity = 0;
|
||||
};
|
||||
|
||||
windowrule = [
|
||||
@@ -122,29 +126,32 @@
|
||||
"float, ^(mpv)$"
|
||||
"float, ^(nmtui)$"
|
||||
"float, title:^(Список друзей)"
|
||||
"move onscreen cursor -50% -50%, ^(xdragon)$"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"float, class:(clipse)"
|
||||
"size 622 652, class:(clipse)"
|
||||
"float, title:(nmtui)"
|
||||
"float, title:(pulsemixer)"
|
||||
"float, title:(clipse)"
|
||||
"size 622 652, title:(clipse)"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"systemctl --user start plasma-polkit-agent"
|
||||
"swww init"
|
||||
"${lib.getExe' pkgs.swww "swww-daemon"}"
|
||||
"${lib.getExe wallpaper_changer}"
|
||||
"${lib.getExe pkgs.hyprpanel}"
|
||||
"${clipsync}"
|
||||
"clipse -listen"
|
||||
"${lib.getExe' pkgs.udiskie "udiskie"}"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod, V, exec, kitty --class clipse -e clipse"
|
||||
"$mainMod, V, exec, ghostty --title=clipse -e clipse"
|
||||
|
||||
"$mainMod, Return, exec, kitty"
|
||||
"$mainMod, Return, exec, ghostty"
|
||||
"$mainMod, Q, killactive,"
|
||||
"$mainMod, M, exit,"
|
||||
"$mainMod, E, exec, kitty -e sh -c yazi"
|
||||
"$mainMod, E, exec, ghostty -e sh -c yazi"
|
||||
"$mainMod, F, togglefloating,"
|
||||
"$mainMod, D, exec, wofi --show drun"
|
||||
"$mainMod, P, pseudo, # dwindle"
|
||||
@@ -199,8 +206,8 @@
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
|
||||
# Keyboard backlight
|
||||
"$mainMod, F3, exec, brightnessctl -d *::kbd_backlight set +33%"
|
||||
"$mainMod, F2, exec, brightnessctl -d *::kbd_backlight set 33%-"
|
||||
"$mainMod, F3, exec, ${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set +33%"
|
||||
"$mainMod, F2, exec, ${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set 33%-"
|
||||
|
||||
# Volume and Media Control
|
||||
", XF86AudioRaiseVolume, exec, pamixer -i 5 "
|
||||
@@ -209,8 +216,8 @@
|
||||
", XF86AudioMicMute, exec, pamixer --default-source -m"
|
||||
|
||||
# Brightness control
|
||||
", XF86MonBrightnessDown, exec, brightnessctl set 5%- "
|
||||
", XF86MonBrightnessUp, exec, brightnessctl set +5% "
|
||||
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%- "
|
||||
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set +5% "
|
||||
|
||||
# Waybar
|
||||
"$mainMod, B, exec, pkill -SIGUSR1 waybar"
|
||||
File renamed without changes.
@@ -1,6 +1,6 @@
|
||||
{ config, ... }: {
|
||||
sops = {
|
||||
defaultSopsFile = ../users/${config.home.username}/secrets.yaml;
|
||||
defaultSopsFile = ../../user/${config.home.username}/secrets.yaml;
|
||||
age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
|
||||
secrets."tokens/apis/wallhaven" = {};
|
||||
File renamed without changes.
@@ -2,8 +2,14 @@
|
||||
yazi-plugins = pkgs.fetchFromGitHub {
|
||||
owner = "yazi-rs";
|
||||
repo = "plugins";
|
||||
rev = "c5785059611624e20a37ba573620f30acc28a26a";
|
||||
hash = "sha256-wlSBtabIsEUJhuHmXwgpSnwZp9WaVQFBg6s1XXjubrE=";
|
||||
rev = "07258518f3bffe28d87977bc3e8a88e4b825291b";
|
||||
hash = "sha256-axoMrOl0pdlyRgckFi4DiS+yBKAIHDhVeZQJINh8+wk=";
|
||||
};
|
||||
starship = pkgs.fetchFromGitHub {
|
||||
owner = "Rolv-Apneseth";
|
||||
repo = "starship.yazi";
|
||||
rev = "d1cd0a38aa6a2c2e86e62a466f43e415f781031e";
|
||||
sha256 = "sha256-XiEsykudwYmwSNDO41b5layP1DqVa89e6Emv9Qf0mz0=";
|
||||
};
|
||||
in {
|
||||
programs.yazi = {
|
||||
@@ -25,12 +31,7 @@ in {
|
||||
chmod = "${yazi-plugins}/chmod.yazi";
|
||||
full-border = "${yazi-plugins}/full-border.yazi";
|
||||
max-preview = "${yazi-plugins}/max-preview.yazi";
|
||||
starship = pkgs.fetchFromGitHub {
|
||||
owner = "Rolv-Apneseth";
|
||||
repo = "starship.yazi";
|
||||
rev = "77a65f5a367f833ad5e6687261494044006de9c3";
|
||||
sha256 = "sha256-sAB0958lLNqqwkpucRsUqLHFV/PJYoJL2lHFtfHDZF8=";
|
||||
};
|
||||
starship = starship;
|
||||
};
|
||||
|
||||
initLua = ''
|
||||
@@ -50,6 +51,10 @@ in {
|
||||
run = "plugin chmod";
|
||||
desc = "Chmod on selected files";
|
||||
}
|
||||
{
|
||||
on = [ "<C-n>" ];
|
||||
run = ''shell '${lib.getExe pkgs.xdragon} -x -i -T "$@"' --confirm'';
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
@@ -12,7 +12,7 @@
|
||||
add_newline = true;
|
||||
format = ''
|
||||
$os$directory$git_branch$git_status
|
||||
$status$character
|
||||
$nix_shell$status$character
|
||||
'';
|
||||
right_format = "$all";
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
fish_style_pwd_dir_length = 1;
|
||||
read_only = " RO";
|
||||
};
|
||||
nix_shell.format = "[nix-shell]($style) ";
|
||||
os.disabled = false;
|
||||
python = {
|
||||
symbol = "py ";
|
||||
@@ -44,8 +45,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
zellij.enable = true;
|
||||
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
@@ -71,6 +70,7 @@
|
||||
ff = "fastfetch";
|
||||
cat = "${pkgs.lib.getExe pkgs.bat}";
|
||||
cd = "z";
|
||||
lg = "lazygit";
|
||||
};
|
||||
|
||||
initExtra = ''
|
||||
@@ -80,6 +80,10 @@
|
||||
source "$(fzf-share)/completion.zsh"
|
||||
'';
|
||||
|
||||
envExtra = ''
|
||||
TERM=xterm-256color
|
||||
'';
|
||||
|
||||
history.size = 10000;
|
||||
history.path = "${config.xdg.dataHome}/zsh/history";
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
{ config, pkgs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./secrets/secrets.nix
|
||||
./modules/grub.nix
|
||||
../../packages.nix
|
||||
../../modules/bundle.nix
|
||||
../../modules/gamemode.nix
|
||||
../../modules/users/chest.nix
|
||||
];
|
||||
|
||||
networking.hostName = "Eclipse";
|
||||
|
||||
time.timeZone = "Europe/Moscow";
|
||||
|
||||
i18n.defaultLocale = "ru_RU.UTF-8";
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [nvidia-vaapi-driver intel-media-driver];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver];
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
networking.hosts = {
|
||||
"0.0.0.0" = [
|
||||
"overseauspider.yuanshen.com"
|
||||
"log-upload-os.hoyoverse.com"
|
||||
"log-upload-os.mihoyo.com"
|
||||
"dump.gamesafe.qq.com"
|
||||
|
||||
"apm-log-upload-os.hoyoverse.com"
|
||||
"zzz-log-upload-os.hoyoverse.com"
|
||||
|
||||
"log-upload.mihoyo.com"
|
||||
"devlog-upload.mihoyo.com"
|
||||
"uspider.yuanshen.com"
|
||||
"sg-public-data-api.hoyoverse.com"
|
||||
"hkrpg-log-upload-os.hoyoverse.com"
|
||||
"public-data-api.mihoyo.com"
|
||||
|
||||
"prd-lender.cdp.internal.unity3d.com"
|
||||
"thind-prd-knob.data.ie.unity3d.com"
|
||||
"thind-gke-usc.prd.data.corp.unity3d.com"
|
||||
"cdp.cloud.unity3d.com"
|
||||
"remote-config-proxy-prd.uca.cloud.unity3d.com"
|
||||
|
||||
"pc.crashsight.wetest.net"
|
||||
];
|
||||
};
|
||||
|
||||
services.gvfs.enable = true;
|
||||
services.udisks2.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data: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 truncated
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJTGRuVlFhTm1aSWplc0hl\ndCtrZ0I3TzA2Nk52SWRqalJheHNSbVZjYURZClVBbkdPVHRLbVhsVHAwb2U1NkF2\nT2dsSEp3WnFVNU51bXpyaU4zY1pYOUkKLS0tIFg0WlNCRzBoQ1JQanRSbUhoc29u\nWmtRTldiRlh6TXByZEwrVkNqeW9LSVkK+42St/pflwAwiq9VUXg3YvdhNShVJGK7\nOdvi0T3+jWViesMxDtJxlgiv7Dgc5yQ6s9yXtXYn7LdEDluWiaP/PA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-11-08T14:33:09Z",
|
||||
"mac": "ENC[AES256_GCM,data:jFaL+b8kJtA3GbAiS5PdTQ4L6BoKEQlUKFAmT5mBW4aNpBZJr91OFhfWnkhW0CirkW+VZJvj76hq79IrVBhYvH1EL/HYBxx9YrxzF0Xl95j1zwCFwGunx8EzVkDlFrDq6Sr6ygR2rgBh/gHuDlhmmtpyyDp2FffLYV9+BeTmDZY=,iv:OuFnskVt08vLZ+MC4ees8n91ry9WDqvifdL8Z+WAn2A=,tag:KUyv5b21t1B3S0hCngAOpw==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.1"
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{ config, pkgs, inputs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./secrets/secrets.nix
|
||||
./modules/grub.nix
|
||||
../../packages.nix
|
||||
../../modules/bundle.nix
|
||||
../../modules/adb.nix
|
||||
../../modules/gamemode.nix
|
||||
../../modules/users/sweetbread.nix
|
||||
];
|
||||
|
||||
networking.hostName = "Rias";
|
||||
|
||||
time.timeZone = "Europe/Moscow";
|
||||
|
||||
i18n.defaultLocale = "ru_RU.UTF-8";
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [nvidia-vaapi-driver intel-media-driver];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver];
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
users.extraGroups.vboxusers.members = [ "sweetbread" ];
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
sops = {
|
||||
age.keyFile = "/root/age.key";
|
||||
secrets.vpn_bolt = {
|
||||
format = "binary";
|
||||
sopsFile = ./vpn_bolt.db;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data: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 truncated
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0VWF3NUxHUFo0K1Nvak9I\nMkE0SUg1Mjl4eTM2VG9WRjFadDRJRTVoSGhFCmNIaVlweG9GK0VxaXhtODNVTW5z\nWDdSYjZBdi9qSi9ZTkdUcTAvYUl4NkEKLS0tIHlZcWl6dmdtbnZmMjNadnI3TVYy\nbFRDNm9XRlFZdDNPdGVxNmtYUm5YMEEKlTJZsxFyVI9Chq2URLsaJWtY6zyLAwzu\nLEoXYtMrViJdAyq/hU1tHYGtPNNo3TG7Xle9m/VO+7Ll+rcGwOEpbw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-11-07T19:55:09Z",
|
||||
"mac": "ENC[AES256_GCM,data:DBcAJyRBB+jaNTMC+QMNex7CmYJ8H766I507MK6vdowhbJ5B/4LhIb20tCMT7+yKQsI3RCWz6wHiKSflPZTgHia3YEJseb84/2JtwrpG0xDcUU4/fbBORDdP+au99G4EBXtKS0pREAZX2bw2LFPdmSO83UZhVpc/CW3Asm+Gkv4=,iv:AHQWsuWQ8F29abqxCBejZVY9FW8bt/S4xXsnScqo8Oo=,tag:JhTbphtHuOlJtn1CPGCvjg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.1"
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{ config, pkgs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./secrets/secrets.nix
|
||||
../../packages.nix
|
||||
../../modules/bundle.nix
|
||||
../../modules/adb.nix
|
||||
../../modules/users/sweetbread.nix
|
||||
../../modules/laptop.nix
|
||||
];
|
||||
|
||||
networking.hostName = "Senko";
|
||||
|
||||
time.timeZone = "Europe/Moscow";
|
||||
|
||||
i18n.defaultLocale = "ru_RU.UTF-8";
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [nvidia-vaapi-driver intel-media-driver];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver];
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../Rias/secrets
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
./bootloader.nix
|
||||
./sound.nix
|
||||
./zram.nix
|
||||
./env.nix
|
||||
./nm.nix
|
||||
./virtmanager.nix
|
||||
./trim.nix
|
||||
./bluetooth.nix
|
||||
./vpn.nix
|
||||
./printing.nix
|
||||
./shutdown-on-lan.nix
|
||||
];
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.steam.enable = true;
|
||||
programs.steam.gamescopeSession.enable = true;
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
mangohud
|
||||
protonup
|
||||
bottles
|
||||
heroic
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS =
|
||||
"\${HOME}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
|
||||
CPU_MIN_PERF_ON_AC = 0;
|
||||
CPU_MAX_PERF_ON_AC = 100;
|
||||
CPU_MIN_PERF_ON_BAT = 0;
|
||||
CPU_MAX_PERF_ON_BAT = 25;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
services = {
|
||||
printing.enable = true;
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
# rtkit is optional but recommended
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
services.fstrim.enable = true;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{ pkgs, lib, inputs, ... }: {
|
||||
programs.zsh.enable = true;
|
||||
|
||||
users = {
|
||||
defaultUserShell = pkgs.zsh;
|
||||
|
||||
users.chest = {
|
||||
isNormalUser = true;
|
||||
description = "Chest";
|
||||
extraGroups = [ "networkmanager" "wheel" "input" "libvirtd" ];
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
};
|
||||
|
||||
services.greetd = let
|
||||
tuigreet = pkgs.lib.getExe pkgs.greetd.tuigreet;
|
||||
session = lib.getExe inputs.hyprland.packages.${pkgs.system}.default;
|
||||
username = "chest";
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
initial_session = {
|
||||
command = "${session}";
|
||||
user = "${username}";
|
||||
};
|
||||
default_session = {
|
||||
command = "${tuigreet} --greeting 'Welcome to NixOS!' --asterisks --remember --remember-user-session --time -cmd ${session}";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nix.settings.trusted-users = [ "chest" ];
|
||||
}
|
||||
Loaded 100 of 115 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user