feat: add quickshell
This commit is contained in:
@@ -75,6 +75,10 @@ local function setup_svelte()
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function setup_qml()
|
||||||
|
require("lspconfig").qmlls.setup({})
|
||||||
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
@@ -108,6 +112,7 @@ return {
|
|||||||
"clangd",
|
"clangd",
|
||||||
"cmake",
|
"cmake",
|
||||||
"cssls",
|
"cssls",
|
||||||
|
"qmlls",
|
||||||
},
|
},
|
||||||
automatic_enable = { exclude = { "luau_lsp", "lua_ls", "svelte" } },
|
automatic_enable = { exclude = { "luau_lsp", "lua_ls", "svelte" } },
|
||||||
})
|
})
|
||||||
@@ -117,6 +122,7 @@ return {
|
|||||||
setup_nix()
|
setup_nix()
|
||||||
setup_java()
|
setup_java()
|
||||||
setup_svelte()
|
setup_svelte()
|
||||||
|
setup_qml()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ return {
|
|||||||
"html",
|
"html",
|
||||||
"templ",
|
"templ",
|
||||||
"go",
|
"go",
|
||||||
|
"qmljs",
|
||||||
},
|
},
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
|
|||||||
1
.config/quickshell/.qmlls.ini
Symbolic link
1
.config/quickshell/.qmlls.ini
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/run/user/1000/quickshell/vfs/d51aaef3451280dfdf2f7cf03412fd13/.qmlls.ini
|
||||||
BIN
.config/quickshell/icons/nixos.png
Normal file
BIN
.config/quickshell/icons/nixos.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 97 KiB |
124
.config/quickshell/shell.qml
Normal file
124
.config/quickshell/shell.qml
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
//qmllint disable unqualified
|
||||||
|
//qmllint disable unused-imports
|
||||||
|
//qmllint disable uncreatable-type
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Wayland
|
||||||
|
import Quickshell.Hyprland
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
PanelWindow {
|
||||||
|
id: root
|
||||||
|
anchors.top: true
|
||||||
|
anchors.left: true
|
||||||
|
anchors.right: true
|
||||||
|
implicitHeight: 34
|
||||||
|
color: "#1a1b26"
|
||||||
|
|
||||||
|
property int fontSize: 18
|
||||||
|
property color colBg: "#1a1b26"
|
||||||
|
property color colFg: "#a9b1d6"
|
||||||
|
property color colMuted: "#444b6a"
|
||||||
|
property color colCyan: "#0db9d7"
|
||||||
|
property color colPurple: "#ad8ee6"
|
||||||
|
property color colRed: "#f7768e"
|
||||||
|
property color colYellow: "#e0af68"
|
||||||
|
property color colBlue: "#7aa2f7"
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.preferredWidth: 30
|
||||||
|
Layout.preferredHeight: 28
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Image {
|
||||||
|
anchors.fill: parent
|
||||||
|
source: "file:///home/luca/dotfiles/.config/quickshell/icons/nixos.png"
|
||||||
|
fillMode: Image.PreserveAspectFit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: Hyprland.workspaces.values
|
||||||
|
|
||||||
|
delegate: Rectangle {
|
||||||
|
id: workspaceComponent
|
||||||
|
Layout.preferredWidth: 30
|
||||||
|
Layout.preferredHeight: parent.height
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
property bool isActive: modelData.focused
|
||||||
|
property int lastActive: 1
|
||||||
|
property int wsId: modelData.id
|
||||||
|
property bool isHovered: mouseHandler.containsMouse
|
||||||
|
|
||||||
|
states: [
|
||||||
|
State {
|
||||||
|
name: "active"
|
||||||
|
when: isActive
|
||||||
|
PropertyChanges {
|
||||||
|
target: workspaceComponent
|
||||||
|
color: Qt.rgba(1, 1, 1, 0.2)
|
||||||
|
}
|
||||||
|
PropertyChanges {
|
||||||
|
target: underline
|
||||||
|
color: root.colPurple
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "hovered"
|
||||||
|
when: isHovered && !isActive
|
||||||
|
PropertyChanges {
|
||||||
|
target: workspaceComponent
|
||||||
|
color: Qt.rgba(1, 1, 1, 0.1)
|
||||||
|
}
|
||||||
|
PropertyChanges {
|
||||||
|
target: underline
|
||||||
|
color: "#7aa2f7"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
transitions: Transition {
|
||||||
|
ColorAnimation {
|
||||||
|
duration: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: modelData.id
|
||||||
|
color: isActive ? "#a9b1d6" : "#7aa2f7"
|
||||||
|
font {
|
||||||
|
pixelSize: root.fontSize
|
||||||
|
bold: true
|
||||||
|
family: "Comic Relief"
|
||||||
|
}
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: underline
|
||||||
|
width: 30
|
||||||
|
height: 3
|
||||||
|
color: root.colBg
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: mouseHandler
|
||||||
|
hoverEnabled: true
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: Hyprland.dispatch("workspace " + modelData.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
21
nix/flake.lock
generated
21
nix/flake.lock
generated
@@ -207,6 +207,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"quickshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1768689040,
|
||||||
|
"narHash": "sha256-Tlnr5BulJcMers/cb+YvmBQW4nKHjdKo9loInJkyO2k=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "7a427ce1979ce7447e885c4f30129b40f3d466f5",
|
||||||
|
"revCount": 729,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"custom-fonts": "custom-fonts",
|
"custom-fonts": "custom-fonts",
|
||||||
@@ -215,6 +235,7 @@
|
|||||||
"nixos-wsl": "nixos-wsl",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-before": "nixpkgs-before",
|
"nixpkgs-before": "nixpkgs-before",
|
||||||
|
"quickshell": "quickshell",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"status-bar": "status-bar"
|
"status-bar": "status-bar"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,10 @@
|
|||||||
url = "github:nix-community/fenix";
|
url = "github:nix-community/fenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
quickshell = {
|
||||||
|
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -75,6 +79,7 @@
|
|||||||
inherit inputs;
|
inherit inputs;
|
||||||
meta = {
|
meta = {
|
||||||
hostname = host.name;
|
hostname = host.name;
|
||||||
|
architecture = host.architecture;
|
||||||
};
|
};
|
||||||
pkgs-before = import inputs.nixpkgs-before { system = host.architecture; };
|
pkgs-before = import inputs.nixpkgs-before { system = host.architecture; };
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
roboto
|
roboto
|
||||||
roboto-mono
|
roboto-mono
|
||||||
open-sans
|
open-sans
|
||||||
|
comic-relief
|
||||||
];
|
];
|
||||||
fonts.fontDir.enable = true;
|
fonts.fontDir.enable = true;
|
||||||
commonPackages = with pkgs; [
|
commonPackages = with pkgs; [
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs-before,
|
pkgs-before,
|
||||||
|
inputs,
|
||||||
|
meta,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -50,6 +52,7 @@
|
|||||||
lm_sensors
|
lm_sensors
|
||||||
fanctl
|
fanctl
|
||||||
waypipe
|
waypipe
|
||||||
|
inputs.quickshell.packages.${meta.architecture}.default
|
||||||
];
|
];
|
||||||
boot.kernelModules = [
|
boot.kernelModules = [
|
||||||
"iptables"
|
"iptables"
|
||||||
@@ -202,6 +205,8 @@
|
|||||||
"$mod, k, movefocus, u"
|
"$mod, k, movefocus, u"
|
||||||
"$mod, j, movefocus, d"
|
"$mod, j, movefocus, d"
|
||||||
"$mod, Space, togglesplit"
|
"$mod, Space, togglesplit"
|
||||||
|
"$mod SHIFT, h, movewindow, l"
|
||||||
|
"$mod SHIFT, l, movewindow, r"
|
||||||
"$mod SHIFT, v, exec, bash -c ~/dotfiles/scripts/copy.sh"
|
"$mod SHIFT, v, exec, bash -c ~/dotfiles/scripts/copy.sh"
|
||||||
"$mod SHIFT, s, exec, bash -c ~/dotfiles/scripts/screenshot.sh"
|
"$mod SHIFT, s, exec, bash -c ~/dotfiles/scripts/screenshot.sh"
|
||||||
"$mod, p, exec, bash -c ~/dotfiles/scripts/project.sh"
|
"$mod, p, exec, bash -c ~/dotfiles/scripts/project.sh"
|
||||||
@@ -235,14 +240,14 @@
|
|||||||
",XF86MonBrightnessDown, exec, bash -c 'brightnessctl s 5%- && perc=$(( \$(brightnessctl get) * 100 / \$(brightnessctl max) )) && notify-send \"Brightness\" -h int:value:\$perc -h string:synchronous:brightness -u low'"
|
",XF86MonBrightnessDown, exec, bash -c 'brightnessctl s 5%- && perc=$(( \$(brightnessctl get) * 100 / \$(brightnessctl max) )) && notify-send \"Brightness\" -h int:value:\$perc -h string:synchronous:brightness -u low'"
|
||||||
];
|
];
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 0;
|
gaps_in = 5;
|
||||||
gaps_out = 10;
|
gaps_out = 10;
|
||||||
};
|
};
|
||||||
dwindle = {
|
dwindle = {
|
||||||
preserve_split = true;
|
preserve_split = true;
|
||||||
};
|
};
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 0;
|
rounding = 10;
|
||||||
blur = {
|
blur = {
|
||||||
enabled = false;
|
enabled = false;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -36,6 +36,9 @@
|
|||||||
programs.nix-ld.libraries = with pkgs; [
|
programs.nix-ld.libraries = with pkgs; [
|
||||||
openssl
|
openssl
|
||||||
zlib
|
zlib
|
||||||
|
brotli
|
||||||
|
unixODBC
|
||||||
|
glib
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user