feat: add quickshell
This commit is contained in:
@@ -75,6 +75,10 @@ local function setup_svelte()
|
||||
})
|
||||
end
|
||||
|
||||
local function setup_qml()
|
||||
require("lspconfig").qmlls.setup({})
|
||||
end
|
||||
|
||||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
@@ -108,6 +112,7 @@ return {
|
||||
"clangd",
|
||||
"cmake",
|
||||
"cssls",
|
||||
"qmlls",
|
||||
},
|
||||
automatic_enable = { exclude = { "luau_lsp", "lua_ls", "svelte" } },
|
||||
})
|
||||
@@ -117,6 +122,7 @@ return {
|
||||
setup_nix()
|
||||
setup_java()
|
||||
setup_svelte()
|
||||
setup_qml()
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ return {
|
||||
"html",
|
||||
"templ",
|
||||
"go",
|
||||
"qmljs",
|
||||
},
|
||||
auto_install = true,
|
||||
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"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"inputs": {
|
||||
"custom-fonts": "custom-fonts",
|
||||
@@ -215,6 +235,7 @@
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-before": "nixpkgs-before",
|
||||
"quickshell": "quickshell",
|
||||
"sops-nix": "sops-nix",
|
||||
"status-bar": "status-bar"
|
||||
}
|
||||
|
||||
@@ -26,6 +26,10 @@
|
||||
url = "github:nix-community/fenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
@@ -75,6 +79,7 @@
|
||||
inherit inputs;
|
||||
meta = {
|
||||
hostname = host.name;
|
||||
architecture = host.architecture;
|
||||
};
|
||||
pkgs-before = import inputs.nixpkgs-before { system = host.architecture; };
|
||||
};
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
roboto
|
||||
roboto-mono
|
||||
open-sans
|
||||
comic-relief
|
||||
];
|
||||
fonts.fontDir.enable = true;
|
||||
commonPackages = with pkgs; [
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
lib,
|
||||
config,
|
||||
pkgs-before,
|
||||
inputs,
|
||||
meta,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -50,6 +52,7 @@
|
||||
lm_sensors
|
||||
fanctl
|
||||
waypipe
|
||||
inputs.quickshell.packages.${meta.architecture}.default
|
||||
];
|
||||
boot.kernelModules = [
|
||||
"iptables"
|
||||
@@ -202,6 +205,8 @@
|
||||
"$mod, k, movefocus, u"
|
||||
"$mod, j, movefocus, d"
|
||||
"$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, s, exec, bash -c ~/dotfiles/scripts/screenshot.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'"
|
||||
];
|
||||
general = {
|
||||
gaps_in = 0;
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
};
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
};
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
rounding = 10;
|
||||
blur = {
|
||||
enabled = false;
|
||||
};
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
programs.nix-ld.libraries = with pkgs; [
|
||||
openssl
|
||||
zlib
|
||||
brotli
|
||||
unixODBC
|
||||
glib
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user