Compare commits
6 commits
288c35032e
...
8e7eea9b80
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e7eea9b80 | |||
| b4bcf9f5d7 | |||
| 01efc056e4 | |||
| 849dd1f8d4 | |||
| c9991f04a3 | |||
| b72bbb4120 |
8 changed files with 197 additions and 23 deletions
17
flake.nix
17
flake.nix
|
|
@ -1,6 +1,23 @@
|
||||||
{
|
{
|
||||||
description = "Veneficium's amazing fantastic mindblowingly stupid nixOS configuration! :3";
|
description = "Veneficium's amazing fantastic mindblowingly stupid nixOS configuration! :3";
|
||||||
|
|
||||||
|
nixConfig = {
|
||||||
|
experimental-features = "nix-command flakes";
|
||||||
|
substitute = "true";
|
||||||
|
extra-substituters = [
|
||||||
|
"https://cache.nixos.org"
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://niri.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
||||||
|
];
|
||||||
|
cores = 0;
|
||||||
|
max-jobs = 2;
|
||||||
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,15 +19,6 @@
|
||||||
|
|
||||||
users.extraGroups.vboxusers.members = [ "fedfer" ];
|
users.extraGroups.vboxusers.members = [ "fedfer" ];
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
stylix.enable = true;
|
stylix.enable = true;
|
||||||
stylix.autoEnable = true;
|
stylix.autoEnable = true;
|
||||||
stylix = {
|
stylix = {
|
||||||
|
|
|
||||||
|
|
@ -65,9 +65,7 @@
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
prismlauncher
|
prismlauncher
|
||||||
foliate
|
|
||||||
impression
|
impression
|
||||||
chatterino2
|
|
||||||
qbittorrent
|
qbittorrent
|
||||||
nixd
|
nixd
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
|
@ -75,23 +73,18 @@
|
||||||
powertop
|
powertop
|
||||||
vesktop
|
vesktop
|
||||||
libreoffice
|
libreoffice
|
||||||
valent
|
|
||||||
zapzap
|
zapzap
|
||||||
kicad-small
|
kicad-small
|
||||||
freecad-wayland
|
freecad-wayland
|
||||||
resources
|
resources
|
||||||
pmbootstrap
|
pmbootstrap
|
||||||
celluloid
|
celluloid
|
||||||
fractal
|
|
||||||
yazi
|
yazi
|
||||||
nautilus
|
nautilus
|
||||||
tuba
|
|
||||||
eza
|
eza
|
||||||
bat
|
bat
|
||||||
gitui
|
gitui
|
||||||
wleave
|
wleave
|
||||||
wl-gammarelay-rs
|
|
||||||
wl-gammarelay-applet
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.stateVersion = "23.11"; # DO NOT CHANGE
|
home.stateVersion = "23.11"; # DO NOT CHANGE
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,13 @@
|
||||||
config = lib.mkIf config.settings.programs.git.enable {
|
config = lib.mkIf config.settings.programs.git.enable {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userEmail = "85629831+veneficium42@users.noreply.github.com";
|
settings = {
|
||||||
userName = "Veneficium";
|
user = {
|
||||||
extraConfig = {
|
email = "veneficium@linuxposting.xyz";
|
||||||
|
name = "veneficium";
|
||||||
|
};
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
credential.credentialStore = "gpg";
|
# credential.credentialStore = "gpg";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,14 @@
|
||||||
settings = builtins.fromJSON (builtins.readFile ./swaylock.json);
|
settings = builtins.fromJSON (builtins.readFile ./swaylock.json);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.quickshell = {
|
||||||
|
enable = true;
|
||||||
|
configs = {
|
||||||
|
"default" = ./shell.qml;
|
||||||
|
};
|
||||||
|
activeConfig = "default";
|
||||||
|
};
|
||||||
|
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -193,7 +201,10 @@
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
"Mod+T".action.spawn = "ghostty";
|
"Mod+T".action.spawn = [
|
||||||
|
"ghostty"
|
||||||
|
"+new-window"
|
||||||
|
];
|
||||||
"Mod+D".action.spawn = "fuzzel";
|
"Mod+D".action.spawn = "fuzzel";
|
||||||
"Mod+Q".action = close-window;
|
"Mod+Q".action = close-window;
|
||||||
|
|
||||||
|
|
|
||||||
159
modules/home/niri/shell.qml
Normal file
159
modules/home/niri/shell.qml
Normal file
|
|
@ -0,0 +1,159 @@
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell.Widgets
|
||||||
|
import Quickshell.Services.SystemTray
|
||||||
|
import Quickshell.Services.Pipewire
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
PanelWindow {
|
||||||
|
component Pill: Rectangle {
|
||||||
|
default property alias data: inner.data
|
||||||
|
color: Qt.rgba(0.6,0.6,0.6,0.4)
|
||||||
|
radius: height / 2.0 - 2.0
|
||||||
|
implicitWidth: inner.implicitWidth + 8.0 * 2
|
||||||
|
implicitHeight: inner.implicitHeight + 3.0 * 2
|
||||||
|
Item {
|
||||||
|
id: inner
|
||||||
|
anchors.centerIn: parent
|
||||||
|
implicitWidth: inner.childrenRect.width
|
||||||
|
implicitHeight: inner.childrenRect.height
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
component Tray: WrapperItem {
|
||||||
|
implicitWidth: inner.implicitWidth
|
||||||
|
implicitHeight: inner.implicitHeight
|
||||||
|
RowLayout {
|
||||||
|
id: inner
|
||||||
|
Repeater {
|
||||||
|
model: SystemTray.items.values
|
||||||
|
IconImage {
|
||||||
|
id: tray_item
|
||||||
|
required property SystemTrayItem modelData
|
||||||
|
source: modelData.icon
|
||||||
|
visible: !modelData.icon.includes("?path=")
|
||||||
|
implicitSize: 22.5
|
||||||
|
|
||||||
|
PopupWindow {
|
||||||
|
id: label
|
||||||
|
visible: hover_handler.hovered && hover_text.width
|
||||||
|
implicitWidth: hover_text.width
|
||||||
|
implicitHeight: hover_text.height + 2.0
|
||||||
|
anchor.item: tray_item
|
||||||
|
anchor.rect.y: tray_item.height + 2.0
|
||||||
|
anchor.rect.x: (tray_item.width - this.width) / 2.0
|
||||||
|
color: "black"
|
||||||
|
Text {
|
||||||
|
id: hover_text
|
||||||
|
text: tray_item.modelData.tooltipTitle || tray_item.modelData.title
|
||||||
|
color: "white"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HoverHandler {
|
||||||
|
id: hover_handler
|
||||||
|
}
|
||||||
|
|
||||||
|
TapHandler {
|
||||||
|
onTapped: (eventPoint, button) => {
|
||||||
|
if (button == 1) {
|
||||||
|
tray_item.modelData.activate();
|
||||||
|
} else {
|
||||||
|
tray_item.modelData.display(label, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: true
|
||||||
|
left: true
|
||||||
|
right: true
|
||||||
|
}
|
||||||
|
|
||||||
|
implicitHeight: 35
|
||||||
|
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: Qt.rgba(0.3,0.3,0.3,0.5)
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: 11
|
||||||
|
anchors.rightMargin: 11
|
||||||
|
radius: 11
|
||||||
|
}
|
||||||
|
|
||||||
|
SystemClock {
|
||||||
|
id: clock
|
||||||
|
precision: SystemClock.Seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
Pill {
|
||||||
|
Text {
|
||||||
|
text: Qt.formatDateTime(clock.date, "hh:mm dd-MM")
|
||||||
|
color: "white"
|
||||||
|
}
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
Pill {
|
||||||
|
anchors.horizontalCenter: parent.left
|
||||||
|
anchors.horizontalCenterOffset: (width / 2.0) + 30.0
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
Text {
|
||||||
|
text: "left"
|
||||||
|
color: "white"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
anchors.horizontalCenter: parent.right
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenterOffset: -((width / 2.0) + 30.0)
|
||||||
|
RowLayout {
|
||||||
|
id: right_row
|
||||||
|
anchors.centerIn: parent
|
||||||
|
anchors.horizontalCenterOffset: -(width / 2.0)
|
||||||
|
|
||||||
|
PwObjectTracker {objects: [Pipewire.defaultAudioSink]}
|
||||||
|
|
||||||
|
FileView {
|
||||||
|
id: batteryFile
|
||||||
|
path: "/sys/class/power_supply/BAT1/capacity"
|
||||||
|
watchChanges: true
|
||||||
|
onFileChanged: this.reload()
|
||||||
|
blockLoading: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Pill {
|
||||||
|
Text {
|
||||||
|
color: "white"
|
||||||
|
text: `bat: ${batteryFile.text().slice(0,2)}%`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Pill {
|
||||||
|
Text {
|
||||||
|
text: `vol: ${Math.round(Pipewire.defaultAudioSink.audio.volume * 100)}%`
|
||||||
|
color: "white"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Pill {
|
||||||
|
Text {
|
||||||
|
color: "white"
|
||||||
|
text: Pipewire.defaultAudioSink.description.slice(0, 15)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Pill {
|
||||||
|
Tray {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -12,9 +12,10 @@
|
||||||
config = lib.mkIf config.settings.programs.tuigreet.enable {
|
config = lib.mkIf config.settings.programs.tuigreet.enable {
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
useTextGreeter = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = {
|
default_session = {
|
||||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet -t -g \"Haii! :3\" --theme \"container=black;input=lightBlue;prompt=green;greet=magenta;border=blue\"";
|
command = "${pkgs.tuigreet}/bin/tuigreet -t -g \"Haii! :3\" --theme \"container=black;input=lightBlue;prompt=green;greet=magenta;border=blue\"";
|
||||||
user = "greeter";
|
user = "greeter";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
sudo nixos-rebuild switch --flake .
|
sudo nixos-rebuild switch --accept-flake-config --flake .
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue