Compare commits
27 Commits
1d84fd110f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
88cca79368
|
|||
|
5857d4a0ed
|
|||
|
7f9b095859
|
|||
|
6d3b2e7445
|
|||
|
5c84263502
|
|||
|
469aa14b5d
|
|||
|
cc3ceda272
|
|||
|
9287396d75
|
|||
|
3db24e33d4
|
|||
|
f1d33ebd85
|
|||
|
33f640a9d3
|
|||
|
7185cde498
|
|||
|
881212698b
|
|||
|
c23af7303a
|
|||
|
89dfbfa617
|
|||
|
c6b2087533
|
|||
|
98f74130a3
|
|||
|
83f3e3158a
|
|||
|
0f09eab8a0
|
|||
|
efda9b1590
|
|||
|
c53a8ff237
|
|||
|
7532f2dbd2
|
|||
|
cb33c4c755
|
|||
|
3d07720567
|
|||
|
7fc2d78f96
|
|||
|
228120b0a6
|
|||
|
bee7c8fef8
|
@@ -6,7 +6,7 @@ shell = "zsh"
|
||||
[window]
|
||||
decorations = "none"
|
||||
startup_mode = "Windowed"
|
||||
opacity = 1
|
||||
opacity = 0.8
|
||||
blur = true
|
||||
|
||||
# padding = { x = 10, y = 10 }
|
||||
|
||||
@@ -6,7 +6,7 @@ shell = "zsh"
|
||||
[window]
|
||||
decorations = "none"
|
||||
startup_mode = "Windowed"
|
||||
opacity = 1
|
||||
opacity = 0.8
|
||||
blur = true
|
||||
|
||||
# padding = { x = 10, y = 10 }
|
||||
|
||||
10
.config/.gitignore
vendored
10
.config/.gitignore
vendored
@@ -8,6 +8,10 @@
|
||||
!polybar/**
|
||||
!alacritty
|
||||
!alacritty/**
|
||||
!clipse
|
||||
!clipse/**
|
||||
clipse/clipboard_history.json
|
||||
clipse/tmp_files/
|
||||
!hypr
|
||||
!hypr/**
|
||||
!rofi
|
||||
@@ -26,3 +30,9 @@
|
||||
!WallRizz/**
|
||||
!btop
|
||||
!btop/**
|
||||
btop/themes/WallRizz.theme
|
||||
btop/btop.log
|
||||
!kitty
|
||||
!kitty/**
|
||||
|
||||
*.log
|
||||
|
||||
@@ -6,7 +6,29 @@
|
||||
*/
|
||||
|
||||
export function setWallpaper(wallpaperPath) {
|
||||
OS.exec(["hyprctl", "-q", "hyprpaper unload all"]);
|
||||
OS.exec(["hyprctl", "-q", `hyprpaper preload ${wallpaperPath}`]);
|
||||
OS.exec(["hyprctl", "-q", `hyprpaper wallpaper ,${wallpaperPath}`]);
|
||||
// OS.exec(["hyprctl", "-q", "hyprpaper unload all"]);
|
||||
// OS.exec(["hyprctl", "-q", `hyprpaper wallpaper ,${wallpaperPath}`]);
|
||||
|
||||
// For swww
|
||||
OS.exec(["swww", "img", wallpaperPath, "--transition-type=any", "--transition-duration=1"]);
|
||||
|
||||
// For hyprpaper
|
||||
// OS.exec(["hyprctl", "-q", `hyprpaper reload , ${wallpaperPath}`]);
|
||||
|
||||
// SYMLINK
|
||||
// Extract directory and extension
|
||||
const lastSlashIndex = wallpaperPath.lastIndexOf('/');
|
||||
const directory = wallpaperPath.substring(0, lastSlashIndex + 1);
|
||||
|
||||
const lastDotIndex = wallpaperPath.lastIndexOf('.');
|
||||
const extension = lastDotIndex > lastSlashIndex ? wallpaperPath.substring(lastDotIndex) : '';
|
||||
|
||||
// Create lockpaper path with same extension
|
||||
const lockpaperPath = `${directory}lockpaper${extension}`;
|
||||
|
||||
// DELETE ANY OLD IMAGES
|
||||
//OS.exec(["zsh", "-c", `rm ${directory}lockpaper*`]);
|
||||
// Create symlink from wallpaper to lockpaper
|
||||
//OS.exec(["zsh", "-c", `ln -s ${wallpaperPath} ${lockpaperPath}`]);
|
||||
OS.exec(["zsh", "-c", `ln -sf ${wallpaperPath} /home/nathan/.config/lockpaper`]);
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ function adjustColorForReadability(background, foreground) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return fg.toHexString();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,534 +0,0 @@
|
||||
/*
|
||||
For: Visual studio code
|
||||
Author: https://github.com/5hubham5ingh
|
||||
Prerequisite: Installed and enabled WallRizz-theme in vscode from vscode marketplace.
|
||||
Version: 1.0.0
|
||||
*/
|
||||
|
||||
function generateTheme(colors, isDark) {
|
||||
const sortedColors = colors.sort((a, b) => {
|
||||
const la = Color(a).getLuminance();
|
||||
const lb = Color(b).getLuminance();
|
||||
return isDark ? la - lb : lb - la;
|
||||
});
|
||||
|
||||
const background = sortedColors[0];
|
||||
const foreground = sortedColors[colors.length - 1];
|
||||
|
||||
const midIndex = Math.floor(sortedColors.length / 2);
|
||||
const selection = sortedColors[midIndex];
|
||||
const cursor = isDark
|
||||
? sortedColors[Math.floor(midIndex / 2)]
|
||||
: sortedColors[Math.floor(midIndex * 1.5)];
|
||||
|
||||
const black = isDark
|
||||
? sortedColors[1]
|
||||
: sortedColors[sortedColors.length - 2];
|
||||
const white = isDark
|
||||
? sortedColors[sortedColors.length - 2]
|
||||
: sortedColors[1];
|
||||
|
||||
return Object.assign(
|
||||
{
|
||||
background,
|
||||
foreground,
|
||||
selection,
|
||||
cursor,
|
||||
black,
|
||||
white,
|
||||
},
|
||||
...sortedColors.filter(
|
||||
(color) =>
|
||||
color !== selection ||
|
||||
color !== cursor,
|
||||
)
|
||||
.map((color, i) => ({
|
||||
[`color${i + 1}`]: adjustColorForReadability(background, color),
|
||||
})),
|
||||
);
|
||||
}
|
||||
|
||||
function adjustColorForReadability(background, foreground) {
|
||||
const fg = Color(foreground);
|
||||
while (!Color.isReadable(background, foreground)) {
|
||||
fg.brighten(1).saturate(1);
|
||||
const hex = fg.toHex();
|
||||
if (hex === "000000" || hex === "ffffff") {
|
||||
return Color(foreground).brighten().saturate().toHexString();
|
||||
}
|
||||
}
|
||||
|
||||
return fg.toHexString();
|
||||
}
|
||||
|
||||
function generateThemeConfig(theme, isDark) {
|
||||
const vscodeTheme = {
|
||||
"name": "WallWiz Theme",
|
||||
"semanticHighlighting": true,
|
||||
"colors": {
|
||||
// General
|
||||
"editor.background": isDark
|
||||
? Color(theme.background).darken().toHexString()
|
||||
: Color(theme.background).lighten().toHexString(),
|
||||
"editor.foreground": theme.foreground,
|
||||
"textLink.foreground": "#569cd6",
|
||||
"textLink.activeForeground": "#569cd6",
|
||||
"editor.selectionForeground": theme.foreground,
|
||||
"editorCursor.foreground": theme.cursor,
|
||||
|
||||
// Title Bar
|
||||
"titleBar.activeBackground": theme.background,
|
||||
"titleBar.activeForeground": theme.foreground,
|
||||
"titleBar.inactiveBackground": Color(theme.background).lighten()
|
||||
.toHexString(),
|
||||
"titleBar.inactiveForeground": Color(theme.foreground).lighten()
|
||||
.toHexString(),
|
||||
|
||||
// Side Bar
|
||||
"sideBar.background": theme.black,
|
||||
"sideBar.foreground": theme.foreground,
|
||||
|
||||
// Status bar
|
||||
"statusBar.background": theme.background,
|
||||
"statusBar.foreground": theme.foreground,
|
||||
"statusBar.debuggingBackground": Color(theme.background).brighten()
|
||||
.saturate()
|
||||
.toHexString(),
|
||||
"statusBar.debuggingForeground": Color(theme.foreground).brighten()
|
||||
.saturate()
|
||||
.toHexString(),
|
||||
"statusBar.border": "#000",
|
||||
|
||||
// Activity bar
|
||||
"activityBar.background": theme.background,
|
||||
"activityBar.foreground": theme.foreground,
|
||||
"activityBar.activeBorder": Color(theme.background).brighten()
|
||||
.toHexString(),
|
||||
"activityBar.inactiveForeground": Color(theme.foreground).lighten()
|
||||
.toHexString(),
|
||||
"activityBar.activeFocusBorder": theme.white,
|
||||
"activityBar.border": theme.black,
|
||||
|
||||
// Remove borders
|
||||
"tab.border": "#00000000",
|
||||
"sideBar.border": "#00000000",
|
||||
"panel.border": "#00000000",
|
||||
"titleBar.border": "#00000000",
|
||||
"focusBorder": "#00000000",
|
||||
"window.activeBorder": "#00000000",
|
||||
"contrastBorder": "#00000000",
|
||||
|
||||
// Set borders to white (unless covered by another section)
|
||||
"button.border": theme.white,
|
||||
"input.border": theme.white,
|
||||
"dropdown.border": theme.white,
|
||||
"editor.lineHighlightBorder": theme.white,
|
||||
"editor.selectionBackground": theme.white,
|
||||
"editor.findMatchHighlightBorder": theme.white, // another way to show would be nice
|
||||
|
||||
// Panel
|
||||
"panelTitle.inactiveForeground": theme.white,
|
||||
"panelTitle.activeForeground": theme.white,
|
||||
|
||||
// Badges
|
||||
"activityBarBadge.background": theme.white,
|
||||
"activityBarBadge.foreground": theme.black,
|
||||
"badge.background": theme.white,
|
||||
"badge.foreground": theme.black,
|
||||
|
||||
// List
|
||||
"list.activeSelectionIconForeground": theme.background,
|
||||
"list.focusHighlightForeground": theme.foreground,
|
||||
"list.activeSelectionBackground": theme.white,
|
||||
"list.activeSelectionForeground": theme.background,
|
||||
"list.dropBackground": theme.white,
|
||||
"list.focusBackground": theme.white,
|
||||
"list.focusForeground": theme.black,
|
||||
"list.highlightForeground": theme.background,
|
||||
"list.hoverBackground": theme.white,
|
||||
"list.hoverForeground": theme.black,
|
||||
"list.inactiveSelectionBackground": theme.background,
|
||||
"list.inactiveSelectionForeground": theme.foreground,
|
||||
"list.inactiveSelectionIconForeground": theme.black,
|
||||
"list.matchHighlightBackground": theme.cursor,
|
||||
"list.matchHighlightForeground": theme.black,
|
||||
"list.selectionBackground": theme.white,
|
||||
"list.selectionForeground": theme.black,
|
||||
"list.selectionIconForeground": theme.black,
|
||||
"list.warningForeground": theme.cursor,
|
||||
|
||||
// Inlay type inferences
|
||||
"editorInlayHint.background": "#000",
|
||||
"editorInlayHint.foreground": Color(theme.color1).lighten().toHexString(),
|
||||
|
||||
// Editor tabs
|
||||
"tab.inactiveBackground": theme.black,
|
||||
"tab.inactiveForeground": theme.foreground,
|
||||
"tab.activeBackground": theme.background,
|
||||
"tab.activeForeground": theme.foreground,
|
||||
"tab.activeBorder": "#000",
|
||||
"editorGroupHeader.tabsBackground": theme.black,
|
||||
"sideBySideEditor.horizontalBorder": theme.black,
|
||||
"sideBySideEditor.verticalBorder": theme.black,
|
||||
|
||||
// Errors
|
||||
"editorWarning.background": "#ffb51669",
|
||||
"editorError.background": "#ff000069",
|
||||
|
||||
// Line nums
|
||||
"editorLineNumber.activeForeground": theme.background,
|
||||
"editorLineNumber.foreground": theme.foreground,
|
||||
|
||||
// Peek view
|
||||
"peekView.border": theme.background,
|
||||
"peekViewEditor.background": theme.black,
|
||||
"peekViewResult.background": theme.background,
|
||||
"peekViewTitle.background": theme.background,
|
||||
"peekViewEditor.matchHighlightBackground": theme.white,
|
||||
"peekViewTitleDescription.foreground": theme.foreground,
|
||||
|
||||
// Menu bar
|
||||
"menubar.selectionForeground": "#000",
|
||||
"menubar.selectionBackground": "#fff",
|
||||
"menu.border": "#000",
|
||||
|
||||
// Notifications center
|
||||
"notificationCenter.border": "#fff",
|
||||
"notificationCenterHeader.background": "#000",
|
||||
"notificationCenterHeader.foreground": "#fff",
|
||||
|
||||
// Notifications
|
||||
"notifications.background": theme.background,
|
||||
"notifications.foreground": theme.foreground,
|
||||
|
||||
// Quick picker
|
||||
"quickInput.background": "#000",
|
||||
"quickInput.foreground": "#fff",
|
||||
"quickInputList.focusBackground": "#fff",
|
||||
"quickInputList.focusForeground": "#000",
|
||||
"quickInputList.focusIconForeground": "#000",
|
||||
"pickerGroup.border": "#fff",
|
||||
|
||||
// Symbol icons (outline, breadcrumbs, suggest)
|
||||
"symbolIcon.classForeground": "#4EC9B0",
|
||||
"symbolIcon.structForeground": "#4EC9B0",
|
||||
"symbolIcon.enumeratorForeground": "#4EC9B0",
|
||||
"symbolIcon.enumeratorMemberForeground": "#9CDCFE",
|
||||
"symbolIcon.constantForeground": "#9CDCFE",
|
||||
"symbolIcon.moduleForeground": "#fff",
|
||||
"symbolIcon.functionForeground": "#FFEC8B",
|
||||
"symbolIcon.methodForeground": "#FFEC8B",
|
||||
"symbolIcon.objectForeground": "#F1644B", // impl block
|
||||
"symbolIcon.typeParameterForeground": "#4EC9B0",
|
||||
|
||||
// Scrollbar
|
||||
"scrollbarSlider.background": "#ffffff69",
|
||||
"scrollbarSlider.hoverBackground": "#fff",
|
||||
"scrollbarSlider.activeBackground": "#fff",
|
||||
|
||||
// Settings
|
||||
"keybindingTable.rowsBackground": "#000",
|
||||
"keybindingLabel.bottomBorder": "#000",
|
||||
|
||||
// Keybinding label colors
|
||||
"keybindingLabel.foreground": "#000",
|
||||
"keybindingLabel.background": "#fff",
|
||||
"keybindingLabel.border": "#fff",
|
||||
|
||||
// Terminal
|
||||
"terminal.findMatchBackground": "#fff",
|
||||
"terminal.findMatchHighlightBorder": "#ffffff69",
|
||||
"terminal.selectionForeground": "#000",
|
||||
"terminal.selectionBackground": "#fff",
|
||||
"terminal.foreground": "#fff",
|
||||
"terminal.background": "#000",
|
||||
|
||||
// Widgets
|
||||
"editorWidget.border": "#fff",
|
||||
"editorWidget.background": "#000",
|
||||
"editorHoverWidget.background": "#000",
|
||||
"editorHoverWidget.foreground": "#fff",
|
||||
"editorHoverWidget.border": "#fff",
|
||||
|
||||
// Jupyter
|
||||
"notebook.cellBorderColor": "#ffffff69",
|
||||
"notebook.focusedEditorBorder": "#fff",
|
||||
"notebook.outputContainerBorderColor": "#ffffff69",
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"",
|
||||
"meta.selector",
|
||||
"keyword",
|
||||
"keyword.other",
|
||||
"keyword.control.directive",
|
||||
"punctuation.section.directive",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color1,
|
||||
"fontStyle": "bold",
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.operator.quantifier.regexp",
|
||||
"punctuation.definition.tag",
|
||||
"keyword.control",
|
||||
"punctuation.separator",
|
||||
"punctuation.terminator",
|
||||
"punctuation.accessor",
|
||||
"punctuation.bracket",
|
||||
"punctuation.section",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color2,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.other.escape.special.regexp",
|
||||
"constant.character.escape.regexp",
|
||||
"constant.language",
|
||||
"meta.preprocessor",
|
||||
"constant.other.placeholder",
|
||||
"constant.character",
|
||||
"keyword.other.special-method",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color3,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.character.set.regexp",
|
||||
"meta.preprocessor.string",
|
||||
"string.regexp",
|
||||
"constant.character.escape",
|
||||
"constant.other.character-class.regexp",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color4,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.function.decorator.python",
|
||||
"entity.name.function.decorator.python",
|
||||
"source.css entity.other.attribute-name",
|
||||
"source.css.less entity.other.attribute-name.id",
|
||||
"source.scss entity.other.attribute-name",
|
||||
"meta.preprocessor.numeric",
|
||||
"keyword.operator",
|
||||
"keyword.control.conditional",
|
||||
"keyword.operator.logical",
|
||||
"keyword.operator.comparison",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color5,
|
||||
"fontStyle": "italic",
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.attribute",
|
||||
"meta.item-access",
|
||||
"meta.structure.dictionary.key.python",
|
||||
"invalid",
|
||||
"variable",
|
||||
"meta.definition.variable.name",
|
||||
"support.variable",
|
||||
"entity.name.variable",
|
||||
"variable.parameter",
|
||||
"variable.other",
|
||||
"variable.language",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color6,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.function-call",
|
||||
"storage",
|
||||
"markup.heading",
|
||||
"keyword.other.unit",
|
||||
"meta.object-literal.key",
|
||||
"meta.object-literal.key entity.name.function",
|
||||
"entity.name.function.call",
|
||||
"support.function",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.background,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.diff.header",
|
||||
"markup.inserted",
|
||||
"storage.type",
|
||||
"support.constant.property-value",
|
||||
"support.constant.font-name",
|
||||
"support.constant.media-type",
|
||||
"support.constant.media",
|
||||
"constant.other.color.rgb-value",
|
||||
"constant.other.rgb-value",
|
||||
"support.constant.color",
|
||||
"storage.type.primitive",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.white,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.deleted",
|
||||
"storage.modifier",
|
||||
"constant.sha.git-rebase",
|
||||
"keyword.control.flow",
|
||||
"keyword.control.import",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color9,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.changed",
|
||||
"string",
|
||||
"storage.modifier.import.java",
|
||||
"variable.language.wildcard.java",
|
||||
"storage.modifier.package.java",
|
||||
"string.quoted",
|
||||
"string.interpolated",
|
||||
"string.template",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color10,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.numeric",
|
||||
"constant.other.color.rgb-value",
|
||||
"constant.other.rgb-value",
|
||||
"support.constant.color",
|
||||
"string.tag",
|
||||
"variable.language.this",
|
||||
"constant.language.boolean",
|
||||
"constant.language.null",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color11,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"string.value",
|
||||
"entity.name.function",
|
||||
"support.function",
|
||||
"support.constant.handlebars",
|
||||
"meta.function.identifier",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.foreground,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.tag.css",
|
||||
"punctuation.definition.template-expression.begin.js",
|
||||
"punctuation.definition.template-expression.begin.ts",
|
||||
"punctuation.definition.template-expression.end.ts",
|
||||
"punctuation.definition.template-expression.end.js",
|
||||
"meta.return-type",
|
||||
"support.class",
|
||||
"support.type",
|
||||
"entity.name.type",
|
||||
"entity.name.class",
|
||||
"source.cs storage.type",
|
||||
"storage.type.class",
|
||||
"storage.type.function",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color13,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name",
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"variable.css",
|
||||
"variable.scss",
|
||||
"variable.other.less",
|
||||
"meta.type.cast.expr",
|
||||
"meta.type.new.expr",
|
||||
"support.constant.math",
|
||||
"support.constant.dom",
|
||||
"support.constant.json",
|
||||
"entity.other.inherited-class",
|
||||
"support.type.property-name.json",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": theme.color14,
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"mutable",
|
||||
"storage.modifier.mut",
|
||||
"emphasis",
|
||||
"strong",
|
||||
"markup.underline",
|
||||
"markup.bold",
|
||||
"markup.italic",
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "underline bold italic",
|
||||
},
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"comment",
|
||||
"string.quoted.docstring",
|
||||
"comment.line",
|
||||
"comment.block",
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#292826",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
return JSON.stringify(vscodeTheme);
|
||||
}
|
||||
|
||||
function getDarkThemeConf(colors) {
|
||||
const theme = generateTheme(colors, true);
|
||||
return generateThemeConfig(theme, true);
|
||||
}
|
||||
|
||||
function getLightThemeConf(colors) {
|
||||
const theme = generateTheme(colors, false);
|
||||
return generateThemeConfig(theme, false);
|
||||
}
|
||||
|
||||
function setTheme(
|
||||
themeConfPath,
|
||||
) {
|
||||
const config = STD.loadFile(themeConfPath);
|
||||
const themeDir =
|
||||
"/.vscode/extensions/ssdev.wallrizz-theme-0.0.6/themes/wallrizz-theme.json";
|
||||
const vscodeThemeFile = STD.open(
|
||||
HOME_DIR.concat(themeDir),
|
||||
"w",
|
||||
);
|
||||
if (!vscodeThemeFile) return;
|
||||
vscodeThemeFile.puts(config);
|
||||
vscodeThemeFile.close();
|
||||
}
|
||||
|
||||
export { getDarkThemeConf, getLightThemeConf, setTheme };
|
||||
1
.config/backgrounds/.gitignore
vendored
Normal file
1
.config/backgrounds/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
lockpaper*
|
||||
Binary file not shown.
Binary file not shown.
BIN
.config/backgrounds/Blue_Mountains_01.jpg
LFS
Normal file
BIN
.config/backgrounds/Blue_Mountains_01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Blue_Mountains_02.jpg
LFS
Normal file
BIN
.config/backgrounds/Blue_Mountains_02.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Blue_Mountains_03.jpg
LFS
Normal file
BIN
.config/backgrounds/Blue_Mountains_03.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/CS_Wedding01.jpg
LFS
Normal file
BIN
.config/backgrounds/CS_Wedding01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/CS_Wedding02.jpg
LFS
Normal file
BIN
.config/backgrounds/CS_Wedding02.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Cradle_Mountain.jpg
LFS
Normal file
BIN
.config/backgrounds/Cradle_Mountain.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Cradle_Mountain_2.jpg
LFS
Normal file
BIN
.config/backgrounds/Cradle_Mountain_2.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Cradle_Mountain_3.jpg
LFS
Normal file
BIN
.config/backgrounds/Cradle_Mountain_3.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/DaLat.jpg
LFS
Normal file
BIN
.config/backgrounds/DaLat.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/DaLat02.jpg
LFS
Normal file
BIN
.config/backgrounds/DaLat02.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/HoiAn01.jpg
LFS
Normal file
BIN
.config/backgrounds/HoiAn01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/HoiAn02.jpg
LFS
Normal file
BIN
.config/backgrounds/HoiAn02.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Pebbly01.jpg
LFS
Normal file
BIN
.config/backgrounds/Pebbly01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Sapa01.jpg
LFS
Normal file
BIN
.config/backgrounds/Sapa01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Sapa02.jpg
LFS
Normal file
BIN
.config/backgrounds/Sapa02.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Selwyn_01.jpg
LFS
Normal file
BIN
.config/backgrounds/Selwyn_01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/SiemReap.jpg
LFS
Normal file
BIN
.config/backgrounds/SiemReap.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_01.jpeg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_01.jpeg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_02.jpeg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_02.jpeg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_03.jpeg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_03.jpeg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_04.jpeg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_04.jpeg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_05.jpg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_05.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_06.jpg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_06.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Square_Rock_07.jpg
LFS
Normal file
BIN
.config/backgrounds/Square_Rock_07.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Vietnam01.jpg
LFS
Normal file
BIN
.config/backgrounds/Vietnam01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Vietnam02.jpg
LFS
Normal file
BIN
.config/backgrounds/Vietnam02.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Yamba01.jpg
LFS
Normal file
BIN
.config/backgrounds/Yamba01.jpg
LFS
Normal file
Binary file not shown.
BIN
.config/backgrounds/Yamba02.jpg
LFS
Normal file
BIN
.config/backgrounds/Yamba02.jpg
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.config/backgrounds/perisher.jpg
LFS
Normal file
BIN
.config/backgrounds/perisher.jpg
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.config/backgrounds/washpool.jpg
LFS
Normal file
BIN
.config/backgrounds/washpool.jpg
LFS
Normal file
Binary file not shown.
@@ -1,9 +1,8 @@
|
||||
#? Config file for btop v. 1.4.0
|
||||
#? Config file for btop v. 1.4.5
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
#color_theme = "$HOME/.config/btop/themes/catppuccin_macchiato.theme"
|
||||
color_theme = "WallRizz.theme"
|
||||
color_theme = "catppuccin_macciato"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = False
|
||||
@@ -51,7 +50,7 @@ graph_symbol_net = "default"
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net"
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
@@ -116,6 +115,9 @@ cpu_bottom = False
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
||||
show_cpu_watts = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
@@ -151,7 +153,7 @@ background_update = True
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
||||
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
@@ -211,6 +213,9 @@ net_sync = True
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = False
|
||||
|
||||
@@ -227,6 +232,9 @@ log_level = "WARNING"
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
|
||||
2025/04/03 (15:28:50) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (15:28:50) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (17:04:21) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (17:04:21) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (19:12:00) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:12:00) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (19:12:15) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:12:15) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
2025/04/03 (19:12:39) | ERROR: Stall in Runner thread, restarting!
|
||||
|
||||
2025/04/03 (19:13:16) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:13:16) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (19:13:17) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:13:17) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (19:13:24) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:13:24) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (19:42:15) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:42:15) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/03 (19:59:14) | ===> btop++ v.1.4.0
|
||||
2025/04/03 (19:59:14) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/04 (12:20:48) | ===> btop++ v.1.4.0
|
||||
2025/04/04 (12:20:48) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/04 (12:35:50) | ===> btop++ v.1.4.0
|
||||
2025/04/04 (12:35:50) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/04 (17:08:48) | ===> btop++ v.1.4.0
|
||||
2025/04/04 (17:08:48) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/04 (18:17:39) | ===> btop++ v.1.4.0
|
||||
2025/04/04 (18:17:39) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/04 (18:30:39) | ===> btop++ v.1.4.0
|
||||
2025/04/04 (18:30:39) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/04 (18:32:11) | ===> btop++ v.1.4.0
|
||||
2025/04/04 (18:32:11) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/05 (14:07:19) | ===> btop++ v.1.4.0
|
||||
2025/04/05 (14:07:19) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/08 (12:20:25) | ===> btop++ v.1.4.0
|
||||
2025/04/08 (12:20:25) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/08 (14:28:39) | ===> btop++ v.1.4.0
|
||||
2025/04/08 (14:28:39) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/08 (22:53:43) | ===> btop++ v.1.4.0
|
||||
2025/04/08 (22:53:43) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/10 (15:24:50) | ===> btop++ v.1.4.0
|
||||
2025/04/10 (15:24:50) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/10 (16:02:00) | ===> btop++ v.1.4.0
|
||||
2025/04/10 (16:02:00) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/11 (13:53:22) | ===> btop++ v.1.4.0
|
||||
2025/04/11 (13:53:22) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/11 (14:05:35) | ===> btop++ v.1.4.0
|
||||
2025/04/11 (14:05:35) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/15 (11:56:11) | ===> btop++ v.1.4.0
|
||||
2025/04/15 (11:56:11) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (16:03:55) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (16:03:55) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:13:46) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:13:46) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:13:56) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:13:56) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:14:03) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:14:03) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:17:05) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:17:05) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:17:40) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:17:40) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:47:27) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:47:27) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:47:35) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:47:35) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:47:46) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:47:46) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:47:54) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:47:54) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:49:31) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:49:31) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:51:02) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:51:02) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:51:07) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:51:07) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:51:09) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:51:09) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:51:15) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:51:15) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/04/19 (17:54:49) | ===> btop++ v.1.4.0
|
||||
2025/04/19 (17:54:49) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
@@ -1,86 +0,0 @@
|
||||
# Main background
|
||||
theme[main_bg]="#000001"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#f0edf9"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#f0edf9"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#16161d"
|
||||
|
||||
# Background color of selected items
|
||||
theme[selected_bg]="#1851a6"
|
||||
|
||||
# Foreground color of selected items
|
||||
theme[selected_fg]="#21264c"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#000001"
|
||||
|
||||
# Color of text appearing on top of graphs
|
||||
theme[graph_text]="#f0edf9"
|
||||
|
||||
# Misc colors for processes box
|
||||
theme[proc_misc]="#16161d"
|
||||
|
||||
# CPU box outline color
|
||||
theme[cpu_box]="#1851a6"
|
||||
|
||||
# Memory/disks box outline color
|
||||
theme[mem_box]="#1851a6"
|
||||
|
||||
# Network up/down box outline color
|
||||
theme[net_box]="#1851a6"
|
||||
|
||||
# Processes box outline color
|
||||
theme[proc_box]="#1851a6"
|
||||
|
||||
# Box divider lines and small box borders
|
||||
theme[div_line]="#1851a6"
|
||||
|
||||
# Temperature graph colors
|
||||
theme[temp_start]="#16161d"
|
||||
theme[temp_mid]="#21264c"
|
||||
theme[temp_end]="#16161d"
|
||||
|
||||
# CPU graph colors
|
||||
theme[cpu_start]="#16161d"
|
||||
theme[cpu_mid]="#21264c"
|
||||
theme[cpu_end]="#16161d"
|
||||
|
||||
# Mem/Disk free meter
|
||||
theme[free_start]="#16161d"
|
||||
theme[free_mid]="#21264c"
|
||||
theme[free_end]="#16161d"
|
||||
|
||||
# Mem/Disk cached meter
|
||||
theme[cached_start]="#492442"
|
||||
theme[cached_mid]="#16161d"
|
||||
theme[cached_end]="#21264c"
|
||||
|
||||
# Mem/Disk available meter
|
||||
theme[available_start]="#16161d"
|
||||
theme[available_mid]="#21264c"
|
||||
theme[available_end]="#16161d"
|
||||
|
||||
# Mem/Disk used meter
|
||||
theme[used_start]="#16161d"
|
||||
theme[used_mid]="#21264c"
|
||||
theme[used_end]="#16161d"
|
||||
|
||||
# Download graph colors
|
||||
theme[download_start]="#16161d"
|
||||
theme[download_mid]="#492442"
|
||||
theme[download_end]="#21264c"
|
||||
|
||||
# Upload graph colors
|
||||
theme[upload_start]="#21264c"
|
||||
theme[upload_mid]="#492442"
|
||||
theme[upload_end]="#16161d"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage
|
||||
theme[process_start]="#16161d"
|
||||
theme[process_mid]="#16161d"
|
||||
theme[process_end]="#21264c"
|
||||
35
.config/clipse/config.json
Normal file
35
.config/clipse/config.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"allowDuplicates": false,
|
||||
"historyFile": "clipboard_history.json",
|
||||
"maxHistory": 40,
|
||||
"logFile": "clipse.log",
|
||||
"themeFile": "custom_theme.json",
|
||||
"tempDir": "tmp_files",
|
||||
"keyBindings": {
|
||||
"choose": "enter",
|
||||
"clearSelected": "S",
|
||||
"down": "down",
|
||||
"end": "end",
|
||||
"filter": "/",
|
||||
"home": "home",
|
||||
"more": "?",
|
||||
"nextPage": "right",
|
||||
"prevPage": "left",
|
||||
"preview": " ",
|
||||
"quit": "q",
|
||||
"remove": "x",
|
||||
"selectDown": "ctrl+down",
|
||||
"selectSingle": "s",
|
||||
"selectUp": "ctrl+up",
|
||||
"togglePin": "p",
|
||||
"togglePinned": "tab",
|
||||
"up": "up",
|
||||
"yankFilter": "ctrl+s"
|
||||
},
|
||||
"imageDisplay": {
|
||||
"type": "kitty",
|
||||
"scaleX": 9,
|
||||
"scaleY": 9,
|
||||
"heightCut": 2
|
||||
}
|
||||
}
|
||||
28
.config/clipse/custom_theme.json
Normal file
28
.config/clipse/custom_theme.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"useCustomTheme": false,
|
||||
"TitleFore": "#ffffff",
|
||||
"TitleBack": "#6F4CBC",
|
||||
"TitleInfo": "#3498db",
|
||||
"NormalTitle": "#ffffff",
|
||||
"DimmedTitle": "#808080",
|
||||
"SelectedTitle": "#FF69B4",
|
||||
"NormalDesc": "#808080",
|
||||
"DimmedDesc": "#808080",
|
||||
"SelectedDesc": "#FF69B4",
|
||||
"StatusMsg": "#2ecc71",
|
||||
"PinIndicatorColor": "#FFD700",
|
||||
"SelectedBorder": "#3498db",
|
||||
"SelectedDescBorder": "#3498db",
|
||||
"FilteredMatch": "#ffffff",
|
||||
"FilterPrompt": "#2ecc71",
|
||||
"FilterInfo": "#3498db",
|
||||
"FilterText": "#ffffff",
|
||||
"FilterCursor": "#FFD700",
|
||||
"HelpKey": "#999999",
|
||||
"HelpDesc": "#808080",
|
||||
"PageActiveDot": "#3498db",
|
||||
"PageInactiveDot": "#808080",
|
||||
"DividerDot": "#3498db",
|
||||
"PreviewedText": "#ffffff",
|
||||
"PreviewBorder": "#3498db"
|
||||
}
|
||||
12
.config/hypr/README.md
Normal file
12
.config/hypr/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Hyprland README
|
||||
|
||||
After updating you need to update hyprland packages to the latest version.
|
||||
```sh
|
||||
hyprpm update
|
||||
```
|
||||
|
||||
## Current plugins
|
||||
virtual-desktops: https://github.com/levnikmyskin/hyprland-virtual-desktops
|
||||
hyprexpo: https://github.com/hyprwm/hyprland-plugins
|
||||
DarkWindow: https://github.com/micha4w/Hypr-DarkWindow
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,1
|
||||
monitor=desc:Samsung Electric Company C34H89x H4ZR900171, highrr, auto, 1
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
@@ -20,28 +21,31 @@ monitor=,preferred,auto,1
|
||||
source = ~/.config/hypr/start-exec.conf
|
||||
source = ~/.config/hypr/windowrules.conf
|
||||
source = ~/.config/hypr/before-exit.conf
|
||||
source = ~/.config/hypr/keybinds.conf
|
||||
|
||||
# Plugins
|
||||
# hyprlang noerror true
|
||||
source = ~/.config/hypr/plugins/split-monitor-workspaces.conf
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
|
||||
env = HYPRSHOT_DIR,/home/$USER/Pictures/Screenshots
|
||||
env = XDG_MENU_PREFIX,arch-
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = alacritty
|
||||
$fileManager = dolphin
|
||||
# $menu = rofi -show drun calc -modi calc -terse
|
||||
$menu = pgrep -x tofi-drun && pkill -x tofi-drun || tofi-drun --drun-launch=true > ~/.logs/tofi-drun.log 2>&1 &
|
||||
|
||||
|
||||
# wofi --show drun
|
||||
|
||||
# Some default env vars.
|
||||
env = XCURSOR_SIZE,24
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
|
||||
|
||||
# Try to fix some electron apps
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_options = caps:none
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
@@ -54,7 +58,6 @@ input {
|
||||
|
||||
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
@@ -68,44 +71,69 @@ general {
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
|
||||
snap {
|
||||
enabled = true
|
||||
window_gap = 20
|
||||
monitor_gap = 20
|
||||
}
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
|
||||
|
||||
active_opacity = 0.9
|
||||
inactive_opacity = 0.75
|
||||
fullscreen_opacity = 1
|
||||
dim_inactive = false
|
||||
dim_strength = 0.5
|
||||
dim_special = 0.2
|
||||
dim_around = 0.4
|
||||
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 3
|
||||
xray = 0
|
||||
special = true
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
}
|
||||
|
||||
active_opacity = 0.9
|
||||
inactive_opacity = 0.75
|
||||
fullscreen_opacity = 1
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
enabled = true
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
|
||||
# Make special workspaces appear from bottom instead of left
|
||||
animation = specialWorkspace, 1, 3, default, slidefadevert 100%
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # you probably want this
|
||||
smart_split = false
|
||||
}
|
||||
|
||||
master {
|
||||
@@ -113,38 +141,36 @@ master {
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
workspace_swipe = false
|
||||
# See https://wiki.hyprland.org/Configuring/Guestures/ for more
|
||||
gesture = 3, horizontal, workspace
|
||||
gesture = 3, vertical, special, terminal
|
||||
}
|
||||
|
||||
cursor {
|
||||
no_warps = 1
|
||||
}
|
||||
|
||||
misc {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_splash_rendering = 1
|
||||
disable_hyprland_logo = 1
|
||||
focus_on_activate = 0 # This breaks vdesks
|
||||
focus_on_activate = 1 # This breaks vdesks
|
||||
anr_missed_pings = 10
|
||||
}
|
||||
ecosystem {
|
||||
no_donation_nag = 1
|
||||
}
|
||||
# hyprlang noerror true
|
||||
|
||||
plugin {
|
||||
virtual-desktops {
|
||||
names = 1:Coding, 2:Internet, 3:3,4:4, 5:Social
|
||||
cycleworkspaces = 0
|
||||
rememberlayout = none
|
||||
notifyinit = 0
|
||||
verbose_logging = 0
|
||||
}
|
||||
}
|
||||
|
||||
plugin {
|
||||
hyprexpo {
|
||||
columns = 3
|
||||
gap_size = 5
|
||||
bg_col = rgb(111111)
|
||||
workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
|
||||
enable_gesture = true # laptop touchpad
|
||||
enable_gesture = false # laptop touchpad
|
||||
gesture_fingers = 3 # 3 or 4
|
||||
gesture_distance = 300 # how far is the "max"
|
||||
gesture_positive = true # positive = swipe down. Negative = swipe up.
|
||||
@@ -152,7 +178,9 @@ plugin {
|
||||
}
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
debug {
|
||||
disable_logs = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
@@ -160,133 +188,3 @@ plugin {
|
||||
# name = epic-mouse-v1
|
||||
# sensitivity = -0.5
|
||||
# }
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
# bind = $mainMod, Q, exec, $terminal
|
||||
|
||||
bind = CTRL ALT, T, exec, $terminal
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, space, exec, $menu
|
||||
bind = CTRL ALT, Delete, exit
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
|
||||
bind = $mainMod, V, exec, [float] alacritty --class clipse -e /home/nathan/.local/bin/clipse
|
||||
|
||||
|
||||
|
||||
# bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod ALT, 1, workspace, 1
|
||||
bind = $mainMod ALT, 2, workspace, 2
|
||||
bind = $mainMod ALT, 3, workspace, 3
|
||||
bind = $mainMod ALT, 4, workspace, 4
|
||||
bind = $mainMod ALT, 5, workspace, 5
|
||||
bind = $mainMod ALT, 6, workspace, 6
|
||||
bind = $mainMod ALT, 7, workspace, 7
|
||||
bind = $mainMod ALT, 8, workspace, 8
|
||||
bind = $mainMod ALT, 9, workspace, 9
|
||||
bind = $mainMod ALT, 0, workspace, 10
|
||||
|
||||
# hyprlang noerror true
|
||||
bind = $mainMod, 1, vdesk, 1
|
||||
bind = $mainMod, 2, vdesk, 2
|
||||
bind = $mainMod, 3, vdesk, 3
|
||||
bind = $mainMod, 4, vdesk, 4
|
||||
bind = $mainMod, 5, vdesk, 5
|
||||
bind = $mainMod, 6, vdesk, 6
|
||||
bind = $mainMod, 7, vdesk, 7
|
||||
bind = $mainMod, 8, vdesk, 8
|
||||
bind = $mainMod, 9, vdesk, 9
|
||||
bind = $mainMod, 0, vdesk, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetodesk, 1
|
||||
bind = $mainMod SHIFT, 2, movetodesk, 2
|
||||
bind = $mainMod SHIFT, 3, movetodesk, 3
|
||||
bind = $mainMod SHIFT, 4, movetodesk, 4
|
||||
bind = $mainMod SHIFT, 5, movetodesk, 5
|
||||
bind = $mainMod SHIFT, 6, movetodesk, 6
|
||||
bind = $mainMod SHIFT, 7, movetodesk, 7
|
||||
bind = $mainMod SHIFT, 8, movetodesk, 8
|
||||
bind = $mainMod SHIFT, 9, movetodesk, 9
|
||||
bind = $mainMod SHIFT, 0, movetodesk, 10
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod CTRL, S, movetoworkspace, special:magic
|
||||
# bindr = $mainMod, SUPER_L, exec, hyprpanel toggleWindow dashboardmenu
|
||||
|
||||
bind = $mainMod SHIFT, S, exec, hyprshot -m region
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
# bind = $mainMod, mouse_down, workspace, e+1
|
||||
# bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
|
||||
# hyprlang noerror true
|
||||
|
||||
# Used to use overview:toggle, but that resises the windows
|
||||
# bind = $mainMod, TAB, overview:toggle
|
||||
# bind = CTRL ALT, TAB, overview:toggle
|
||||
bind = $mainMod, TAB, hyprexpo:expo, toggle
|
||||
bind = CTRL ALT, TAB, hyprexpo:expo, toggle
|
||||
|
||||
|
||||
bind = ALT, TAB, lastdesk
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
bind = ALT, SPACE, exec, ~/.config/hypr/scripts/search-windows.sh
|
||||
# bind = ALT SHIFT, TAB, workspace, e-1
|
||||
# bind = ALT, TAB, exec, hyprswitch gui --mod-key alt --key tab --close mod-key-release --reverse-key=key=shift && hyprswitch dispatch
|
||||
# bind = ALT SHIFT, TAB, exec, hyprswitch gui --mod-key alt --key tab --close mod-key-release --reverse-key=key=shift && hyprswitch dispatch -r
|
||||
|
||||
# Media control keys
|
||||
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindle=, XF86MonBrightnessUp, exec, brightnessctl s +5%
|
||||
bindle=, XF86MonBrightnessDown, exec, brightnessctl s 5%-
|
||||
bindle=, XF86Search, exec, $menu
|
||||
# bindl=, XF86AudioMute, exec, amixer set Master toggle
|
||||
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindl=, XF86AudioPlay, exec, playerctl play-pause # the stupid key is called play , but it toggles
|
||||
bindl=, XF86AudioNext, exec, playerctl next
|
||||
bindl=, XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Mouse wheel tilt
|
||||
bind = , mouse_left, exec, ydotool key 56:1 105:1 105:0 56:0
|
||||
bind = , mouse_right, exec, ydotool key 56:1 106:1 106:0 56:0
|
||||
|
||||
# Gromit for drawing
|
||||
bind = SUPER CTRL, P, exec, ~/.config/hypr/scripts/gromit.py
|
||||
|
||||
# Emoji
|
||||
bind = $mainMod, PERIOD, exec, bemoji
|
||||
|
||||
# Custom terminal
|
||||
bind = $mainMod, T, exec, alacritty --config-file ~/dotfiles/.alacritty-nozellij.toml
|
||||
|
||||
# Save output to ~/tmp/errors.log
|
||||
bind = $mainMod, W, exec, pgrep -x WallRizz && pkill -x WallRizz || kitty -o allow_remote_control=yes --class float-80 WallRizz -z list -n -d ~/.config/backgrounds
|
||||
@@ -1,33 +1,133 @@
|
||||
$font=Fira Code
|
||||
|
||||
|
||||
auth {
|
||||
fingerprint {
|
||||
enabled = true
|
||||
ready_message = Scan fingerprint to unlock
|
||||
present_message = Scanning...
|
||||
retry_delay = 250 # in milliseconds
|
||||
}
|
||||
}
|
||||
# GENERAL
|
||||
general {
|
||||
disable_loading_bar = true
|
||||
hide_cursor = true
|
||||
screencopy_mode = 0
|
||||
immediate_render = false
|
||||
}
|
||||
|
||||
animation {
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fade, 1, 1.8, linear
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
path = $HOME/.config/backgrounds/0_Shinjuro_Rengoku_0.png
|
||||
#path = $HOME/.config/backgrounds/0_Jellyfish.png
|
||||
blur_passes = 0
|
||||
path = screenshot
|
||||
blur_passes = 2
|
||||
#reload_time = 15
|
||||
#reload_cmd = echo $HOME/.config/lockpaper
|
||||
# blur_passes = 0
|
||||
crossfade_time = 1
|
||||
}
|
||||
# TIME
|
||||
|
||||
# AUTO BACKGROUND
|
||||
# AUTO BACKGROUND END
|
||||
|
||||
# Time-Hour
|
||||
label {
|
||||
# monitor =
|
||||
text = $TIME
|
||||
color = rgb(255, 255, 255)
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = 75, 0
|
||||
halign = left
|
||||
valign = top
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span>$(date +"%I")</span>"
|
||||
color = rgba(255, 255, 255, 1)
|
||||
font_size = 125
|
||||
font_family = StretchPro
|
||||
position = -80, 290
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 3
|
||||
shadow_size = 3
|
||||
shadow_color = rgba(0, 0, 0, 1)
|
||||
}
|
||||
|
||||
# Time-Minute
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span>$(date +"%M")</span>"
|
||||
color = rgba(147, 196, 255, 1)
|
||||
font_size = 125
|
||||
font_family = StretchPro
|
||||
position = 0, 170
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 3
|
||||
shadow_size = 3
|
||||
shadow_color = rgba(0, 0, 0,1)
|
||||
}
|
||||
|
||||
# Day-Month-Date
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "$(date +"%d %B")"
|
||||
color = rgba(255, 255, 255, 1)
|
||||
font_size = 22
|
||||
font_family = Suisse Int'l Mono
|
||||
position = 20, 92
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 3
|
||||
shadow_size = 5
|
||||
shadow_color = rgba(0, 0, 0, 1)
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $HOME/.face
|
||||
rounding = 25
|
||||
size = 200
|
||||
# border_color = rgb(0, 0, 0)
|
||||
border_size = 0
|
||||
position = 0, -100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgba(255, 255, 255, 1)
|
||||
inner_color = rgba(0, 0, 0, 1)
|
||||
font_color = rgb(200, 200, 200)
|
||||
fade_on_empty = false
|
||||
font_family = SF Pro Display Bold
|
||||
placeholder_text = <i><span foreground="##ffffff99">Password...</span></i>
|
||||
hide_input = false
|
||||
position = 0, -290
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# CURRENT SONG
|
||||
label {
|
||||
monitor = eDP-1
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/songdetail.sh)"
|
||||
color = rgba(147, 196, 255, 1)
|
||||
font_size = 18
|
||||
font_family = JetBrains Mono Nerd, SF Pro Display Bold
|
||||
position = 0, 20
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Battery
|
||||
label {
|
||||
# monitor =
|
||||
text = cmd[update:1000] echo " $(cat /sys/class/power_supply/BAT0/capacity)%"
|
||||
monitor = eDP-1
|
||||
text = cmd[update:1000] /home/nathan/.config/hypr/scripts/battery.sh
|
||||
color = rgb(255, 255, 255)
|
||||
font_size = 20
|
||||
font_family = $font
|
||||
@@ -36,74 +136,15 @@ label {
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# DATE
|
||||
# label {
|
||||
# # monitor =
|
||||
# text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
# color = rgb(255, 255, 255)
|
||||
# font_size = 25
|
||||
# font_family = $font
|
||||
# position = 30, -150
|
||||
# halign = left
|
||||
# valign = top
|
||||
# }
|
||||
shape {
|
||||
monitor =
|
||||
size = 500, 100%
|
||||
color = rgba(255, 255, 255, 0.18)
|
||||
rounding = 25
|
||||
# border_size = 4
|
||||
# border_color = rgba(255, 255, 255, 1.0)
|
||||
|
||||
position = -25, 0
|
||||
halign = left
|
||||
valign = center
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
# monitor =
|
||||
path = $HOME/.face
|
||||
rounding = 25
|
||||
size = 100
|
||||
# border_color = rgb(0, 0, 0)
|
||||
border_size = 0
|
||||
position = 200, 75
|
||||
halign = left
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
# monitor =
|
||||
size = 300, 60
|
||||
position = 100, -47
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = rgb(0, 0, 0)
|
||||
inner_color = rgb(255, 255, 255)
|
||||
font_color = rgb(0, 0, 0)
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="black"><i></i> Nathan</span>
|
||||
hide_input = false
|
||||
check_color = rgb(212, 130, 6)
|
||||
fail_color = rgb(255, 0, 0)
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = rgb(255, 0, 0)
|
||||
halign = left
|
||||
valign = center
|
||||
}
|
||||
|
||||
# FINGERPRINT
|
||||
{
|
||||
# monitor = "";
|
||||
text = $FPRINTPROMPT
|
||||
# Stats
|
||||
label {
|
||||
monitor = eDP-1
|
||||
text = cmd[update:15000] /home/nathan/.config/hypr/scripts/stats.sh
|
||||
color = rgb(255, 255, 255)
|
||||
font_size = 14;
|
||||
font_family = $font;
|
||||
position = 0, -107;
|
||||
halign = center;
|
||||
valign = center;
|
||||
font_size = 10
|
||||
font_family = Symbols Nerd Font Mono
|
||||
position = 10, 10
|
||||
halign = left
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB |
@@ -1,3 +1,5 @@
|
||||
preload = ~/.config/backgrounds/0_Shinjuro_Rengoku_0.png
|
||||
wallpaper = , ~/.config/backgrounds/0_Shinjuro_Rengoku_0.png
|
||||
ipc = on
|
||||
|
||||
splash = false
|
||||
165
.config/hypr/keybinds.conf
Normal file
165
.config/hypr/keybinds.conf
Normal file
@@ -0,0 +1,165 @@
|
||||
# Set programs that you use
|
||||
$terminal = alacritty
|
||||
$fileManager = dolphin
|
||||
$menu = pgrep -x tofi-drun && pkill -x tofi-drun || tofi-drun --drun-launch=true > ~/.logs/tofi-drun.log 2>&1 &
|
||||
$clipboard = /home/nathan/.local/bin/clipse
|
||||
$StartWallpaperTimer = systemctl --user start wallpaper.timer && WallRizz -r -n -d ~/.config/backgrounds
|
||||
$mainMod = SUPER
|
||||
|
||||
|
||||
bind = CTRL ALT, T, exec, $terminal
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, space, exec, $menu
|
||||
bind = ALT, SPACE, exec, ~/.config/hypr/scripts/search-windows.sh
|
||||
bind = $mainMod, L, exec, ~/.config/hypr/scripts/lock.sh
|
||||
bind = $mainMod, H, exec, alacritty --class float -e ~/.config/hypr/scripts/help.py
|
||||
bind = CTRL ALT, DELETE, exec, hyprpanel t powermenu
|
||||
|
||||
#bind = $mainMod, V, exec, [float] alacritty --class clipse -e /home/nathan/.local/bin/clipse
|
||||
bind = $mainMod, V, exec, [float] kitty --class float-80 -e $clipboard
|
||||
|
||||
|
||||
|
||||
# Layout
|
||||
bind = $mainMod, J, togglesplit, # Split direction
|
||||
bind = $mainMod, code:35, togglesplit, # Split direction
|
||||
bind = $mainMod SHIFT, J,swapsplit # Swap master and secondary in dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Dedicated special workspace for terminal
|
||||
bind = $mainMod, S, togglespecialworkspace, terminal
|
||||
bind = $mainMod CTRL, S, movetoworkspace, special:terminal
|
||||
bind = CTRL ALT, TAB, togglespecialworkspace, terminal
|
||||
|
||||
# Screenshots
|
||||
bind = $mainMod SHIFT, S, exec, hyprshot -m region
|
||||
bind = $mainMod CTRL SHIFT, S, exec, hyprshot -m window -m active
|
||||
|
||||
# Used to use overview:toggle, but that resises the windows
|
||||
# bind = $mainMod, TAB, overview:toggle
|
||||
# bind = CTRL ALT, TAB, overview:toggle
|
||||
|
||||
# hyprlang noerror true
|
||||
|
||||
bind = $mainMod, TAB, hyprexpo:expo, toggle
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
|
||||
|
||||
# Media control keys
|
||||
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindle=, XF86MonBrightnessUp, exec, brightnessctl s +5%
|
||||
bindle=, XF86MonBrightnessDown, exec, brightnessctl s 5%-
|
||||
bind=, XF86Search, exec, $menu
|
||||
# bindl=, XF86AudioMute, exec, amixer set Master toggle
|
||||
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindl=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindl=, XF86AudioPlay, exec, playerctl play-pause # the stupid key is called play , but it toggles
|
||||
bindl=, XF86AudioNext, exec, playerctl next
|
||||
bindl=, XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# Other FN keys
|
||||
bind= $mainMod CTRL, XF86TouchpadToggle, exec, hyprctl notify -1 2000 -1 "TODO Touchpad Toggle"
|
||||
bind = $mainMod, P, exec, hyprctl notify -1 2000 -1 "TODO Screen Settings"
|
||||
bindl = , Print, exec, hyprshot -m output -m active
|
||||
bind = $mainMod, Print, exec, hyprshot -m window -m active
|
||||
bind = $mainMod CTRL, Print, exec, hyprshot -m region
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod SHIFT, mouse:272, resizewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Mouse wheel tilt
|
||||
bind = , mouse_left, exec, ydotool key 56:1 105:1 105:0 56:0
|
||||
bind = , mouse_right, exec, ydotool key 56:1 106:1 106:0 56:0
|
||||
|
||||
# Gromit for drawing
|
||||
bind = SUPER CTRL, P, exec, ~/.config/hypr/scripts/gromit.py
|
||||
|
||||
# Emoji
|
||||
bind = $mainMod, PERIOD, exec, bemoji
|
||||
|
||||
# Custom terminal
|
||||
bind = $mainMod, T, exec, alacritty --config-file ~/dotfiles/.alacritty-nozellij.toml
|
||||
|
||||
|
||||
bind = $mainMod, W, exec, ~/.config/hypr/scripts/wallpaper.sh
|
||||
bind = $mainMod CTRL, W, exec, $StartWallpaperTimer
|
||||
|
||||
|
||||
# Capslock toggle submap
|
||||
$caps = VoidSymbol
|
||||
bind = , $caps, submap, capsmode
|
||||
submap = capsmode
|
||||
# Bindings for submap
|
||||
|
||||
bind = , 1, exec, hyprctl notify 5 2000 0 "Opening Brave Browser"
|
||||
bind = , 1, exec, brave --proxy-pac-url="https://pac.cn01.woodburn.au/proxy.pac" --enable-features=UseOzonePlatform --ozone-platform=wayland --use-gl=angle --ignore-gpu-blocklist --enable-features=VaapiVideoEncoder,VaapiVideoDecoder,CanvasOopRasterization,VaapiIgnoreDriverChecks,VaapiVideoDecodeLinuxGL,AcceleratedVideoEncoder --disable-gpu-memory-buffer-video-frames --disable-features=WaylandWpColorManagerV1
|
||||
bind = , 1, submap, reset
|
||||
|
||||
bind = , 2, exec, hyprpanel -q
|
||||
bind = , 2, exec, hyprpanel
|
||||
bind = , 2, submap, reset
|
||||
|
||||
bind = CTRL, 3, movetoworkspace, special:alternate
|
||||
bind = CTRL, 3, submap, reset
|
||||
|
||||
bind = , 3, togglespecialworkspace, alternate
|
||||
bind = , 3, submap, reset
|
||||
|
||||
|
||||
bind = , T, exec, hyprctl notify 5 2000 0 "Select text to copy to clipboard..."
|
||||
bind = , T, exec, ~/.config/OCR4Linux/OCR4Linux.sh --lang eng -r
|
||||
bind = , T, submap, reset
|
||||
|
||||
# Disable errors for this plugin
|
||||
# hyprlang noerror true
|
||||
bind = , I, invertactivewindow
|
||||
bind = , I, submap, reset
|
||||
# hyprlang noerror false
|
||||
|
||||
bind = , V, exec, hyprctl notify 5 2000 0 "Resetting Virtual Desks..."
|
||||
bind = , V, exec, hyprctl dispatch vdeskreset
|
||||
bind = , V, submap, reset
|
||||
|
||||
bind = , K, exec, hyprctl notify 0 2000 0 "Click To Kill!!!"
|
||||
bind = , K, exec, hyprctl kill
|
||||
bind = , K, submap, reset
|
||||
|
||||
bind = , O, exec, hyprctl notify 2 2000 0 "Set Opacity..."
|
||||
bind = , O, submap, opacity
|
||||
|
||||
# Help information
|
||||
bind = , H, exec, alacritty --class float -e ~/.config/hypr/scripts/help.py
|
||||
bind = , H, submap, reset
|
||||
|
||||
bind = , catchall, submap, reset
|
||||
|
||||
|
||||
# Opacity submap
|
||||
submap = opacity
|
||||
bind = , 1, exec, ~/.config/hypr/scripts/opacity.py 0.1
|
||||
bind = , 2, exec, ~/.config/hypr/scripts/opacity.py 0.2
|
||||
bind = , 3, exec, ~/.config/hypr/scripts/opacity.py 0.3
|
||||
bind = , 4, exec, ~/.config/hypr/scripts/opacity.py 0.4
|
||||
bind = , 5, exec, ~/.config/hypr/scripts/opacity.py 0.5
|
||||
bind = , 6, exec, ~/.config/hypr/scripts/opacity.py 0.6
|
||||
bind = , 7, exec, ~/.config/hypr/scripts/opacity.py 0.7
|
||||
bind = , 8, exec, ~/.config/hypr/scripts/opacity.py 0.8
|
||||
bind = , 9, exec, ~/.config/hypr/scripts/opacity.py 0.9
|
||||
bind = , 0, exec, ~/.config/hypr/scripts/opacity.py 1
|
||||
bind = , C, exec, ~/.config/hypr/scripts/opacity.py -1
|
||||
bind = , code:20, exec, ~/.config/hypr/scripts/opacity.py -1
|
||||
bind = , catchall, submap, reset
|
||||
|
||||
|
||||
submap = reset
|
||||
31
.config/hypr/plugins/split-monitor-workspaces.conf
Normal file
31
.config/hypr/plugins/split-monitor-workspaces.conf
Normal file
@@ -0,0 +1,31 @@
|
||||
# https://github.com/Duckonaut/split-monitor-workspaces
|
||||
|
||||
bind = $mainMod, 1, split-workspace, 1
|
||||
bind = $mainMod, 2, split-workspace, 2
|
||||
bind = $mainMod, 3, split-workspace, 3
|
||||
bind = $mainMod, 4, split-workspace, 4
|
||||
bind = $mainMod, 5, split-workspace, 5
|
||||
bind = $mainMod, 6, split-workspace, 6
|
||||
bind = $mainMod, 7, split-workspace, 7
|
||||
bind = $mainMod, 8, split-workspace, 8
|
||||
bind = $mainMod, 9, split-workspace, 9
|
||||
bind = $mainMod, 0, split-workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, split-movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
|
||||
|
||||
bind = ALT, TAB, lastdesk
|
||||
|
||||
# Window rules for sticky apps
|
||||
windowrule = workspace 5, class:vesktop
|
||||
windowrule = workspace 5, class:org.telegram.desktop
|
||||
windowrule = workspace 5, class:Slack
|
||||
44
.config/hypr/plugins/virtual-desktops.conf
Normal file
44
.config/hypr/plugins/virtual-desktops.conf
Normal file
@@ -0,0 +1,44 @@
|
||||
# https://github.com/levnikmyskin/hyprland-virtual-desktops
|
||||
|
||||
bind = $mainMod, 1, vdesk, 1
|
||||
bind = $mainMod, 2, vdesk, 2
|
||||
bind = $mainMod, 3, vdesk, 3
|
||||
bind = $mainMod, 4, vdesk, 4
|
||||
bind = $mainMod, 5, vdesk, 5
|
||||
bind = $mainMod, 6, vdesk, 6
|
||||
bind = $mainMod, 7, vdesk, 7
|
||||
bind = $mainMod, 8, vdesk, 8
|
||||
bind = $mainMod, 9, vdesk, 9
|
||||
bind = $mainMod, 0, vdesk, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetodesk, 1
|
||||
bind = $mainMod SHIFT, 2, movetodesk, 2
|
||||
bind = $mainMod SHIFT, 3, movetodesk, 3
|
||||
bind = $mainMod SHIFT, 4, movetodesk, 4
|
||||
bind = $mainMod SHIFT, 5, movetodesk, 5
|
||||
bind = $mainMod SHIFT, 6, movetodesk, 6
|
||||
bind = $mainMod SHIFT, 7, movetodesk, 7
|
||||
bind = $mainMod SHIFT, 8, movetodesk, 8
|
||||
bind = $mainMod SHIFT, 9, movetodesk, 9
|
||||
bind = $mainMod SHIFT, 0, movetodesk, 10
|
||||
|
||||
bind = ALT, TAB, lastdesk
|
||||
|
||||
stickyrule = class:discord,5
|
||||
stickyrule = class:vesktop,5
|
||||
stickyrule = class:org.telegram.desktop,5
|
||||
stickyrule = class:Slack,5
|
||||
|
||||
gesture = 3, right, dispatcher, prevdesk
|
||||
gesture = 3, left, dispatcher, nextdesk
|
||||
|
||||
plugin {
|
||||
virtual-desktops {
|
||||
names = 1:Coding, 2:Internet, 3:3,4:4, 5:Social
|
||||
cycleworkspaces = 0
|
||||
rememberlayout = none
|
||||
notifyinit = 0
|
||||
verbose_logging = 0
|
||||
}
|
||||
}
|
||||
34
.config/hypr/scripts/battery.sh
Executable file
34
.config/hypr/scripts/battery.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get current battery level
|
||||
battery_level=$(cat /sys/class/power_supply/BAT0/capacity)
|
||||
|
||||
# Get current charging status
|
||||
charging_status=$(cat /sys/class/power_supply/BAT0/status)
|
||||
# Get current power supply type
|
||||
power_supply_type=$(cat /sys/class/power_supply/ADP1/online)
|
||||
|
||||
# Create printable output
|
||||
if [ "$charging_status" = "Charging" ]; then
|
||||
status=""
|
||||
else
|
||||
# Get battery level in percentage
|
||||
if [ "$battery_level" -ge 90 ]; then
|
||||
status=""
|
||||
elif [ "$battery_level" -ge 70 ]; then
|
||||
status=""
|
||||
elif [ "$battery_level" -ge 50 ]; then
|
||||
status=""
|
||||
elif [ "$battery_level" -ge 25 ]; then
|
||||
status=""
|
||||
else
|
||||
status=""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Print the output
|
||||
if [ "$power_supply_type" -eq 1 ]; then
|
||||
echo "$status $battery_level%"
|
||||
else
|
||||
echo " $battery_level%"
|
||||
fi
|
||||
@@ -1,18 +1,22 @@
|
||||
#!/bin/bash
|
||||
sleep 2
|
||||
sleep 3
|
||||
clipse -listen &
|
||||
|
||||
# alacritty --class alacritty-init &
|
||||
|
||||
/home/nathan/AppImages/Fingertip-0.0.4-beta2-linux-X64.AppImage &
|
||||
/home/nathan/AppImages/nextcloud_desktop_sync_client.appimage --background &
|
||||
discord --start-minimized &
|
||||
kdeconnect-indicator
|
||||
# slack -U &
|
||||
#/home/nathan/AppImages/Fingertip-0.0.4-beta2-linux-X64.AppImage & # This is broken using sane now
|
||||
|
||||
#/home/nathan/AppImages/nextcloud_desktop_sync_client.appimage --background &
|
||||
nextcloud &
|
||||
# discord --start-minimized & Using vesktop now
|
||||
|
||||
sleep 2
|
||||
vesktop --ozone-platform-hint=auto --start-minimized &
|
||||
kdeconnect-indicator &
|
||||
WallRizz -r -n -d ~/.config/backgrounds
|
||||
|
||||
walker --gapplication-service &
|
||||
|
||||
|
||||
# Misc
|
||||
/home/nathan/scripts/mute.sh
|
||||
|
||||
# Fix dolphin file assosiations
|
||||
XDG_MENU_PREFIX=arch- kbuildsycoca6
|
||||
|
||||
@@ -52,11 +52,19 @@ if __name__ == "__main__":
|
||||
print("Rebinding mouse buttons")
|
||||
os.system("hyprctl keyword bind , mouse_left, exec, 'ydotool key 56:1 105:1 105:0 56:0'")
|
||||
os.system("hyprctl keyword bind , mouse_right, exec, 'ydotool key 56:1 106:1 106:0 56:0'")
|
||||
# Set dim special to default
|
||||
os.system("hyprctl keyword decoration:dim_special 0.5")
|
||||
os.system("hyprctl keyword decoration:blur:special 1")
|
||||
|
||||
else:
|
||||
print("Gromit is not running",flush=True)
|
||||
# Check if gromit-mpx is running
|
||||
if gromit_running():
|
||||
os.system("gromit-mpx -t")
|
||||
|
||||
# Disable dim special
|
||||
os.system("hyprctl keyword decoration:dim_special 0")
|
||||
os.system("hyprctl keyword decoration:blur:special 0")
|
||||
os.system("hyprctl dispatch togglespecialworkspace gromit")
|
||||
os.system("hyprctl keyword unbind , mouse_left")
|
||||
os.system("hyprctl keyword unbind , mouse_right")
|
||||
@@ -64,3 +72,4 @@ if __name__ == "__main__":
|
||||
os.system("hyprctl keyword bind , mouse_right, exec, 'gromit-mpx --redo'")
|
||||
|
||||
|
||||
|
||||
260
.config/hypr/scripts/help.py
Executable file
260
.config/hypr/scripts/help.py
Executable file
@@ -0,0 +1,260 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# This script is used to display help information for Hyprland keybinds.
|
||||
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
|
||||
HARDCODED_VARIABLES = {
|
||||
"exec, ": "",
|
||||
"VoidSymbol": "CAPS",
|
||||
"brave --proxy-pac-url=\"https://pac.cn01.woodburn.au/proxy.pac\" --enable-features=UseOzonePlatform --ozone-platform=wayland --use-gl=angle --ignore-gpu-blocklist --enable-features=VaapiVideoEncoder,VaapiVideoDecoder,CanvasOopRasterization,VaapiIgnoreDriverChecks,VaapiVideoDecodeLinuxGL,AcceleratedVideoEncoder,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE --disable-gpu-memory-buffer-video-frames": "brave",
|
||||
"~/.config/hypr/scripts/":" ",
|
||||
".sh": "",
|
||||
".py": "",
|
||||
"alacritty --config-file ~/dotfiles/.alacritty-nozellij.toml": "Terminal (No Zellij)",
|
||||
"ydotool key 56:1 105:1 105:0 56:0":"Back",
|
||||
"ydotool key 56:1 106:1 106:0 56:0":"Forward",
|
||||
"mouse_left":"Left Tilt",
|
||||
"mouse_right":"Right Tilt",
|
||||
"[float] kitty --class float-80 -e":"",
|
||||
"alacritty --class float-80 -e":"",
|
||||
"alacritty --class float -e":"",
|
||||
"$":" ",
|
||||
"mouse:272": "Left Drag",
|
||||
"mouse:273": "Right Drag",
|
||||
"hyprctl": "",
|
||||
"dispatch ": "",
|
||||
"vdesk,": "",
|
||||
"vdeskreset": " Reset",
|
||||
"movetodesk": " ",
|
||||
"movetoworkspace": " ",
|
||||
"togglespecialworkspace": " ",
|
||||
"special:":"",
|
||||
"lastdesk": " Last Active",
|
||||
}
|
||||
|
||||
IGNORED_ACTIONS = [
|
||||
"hyprctl notify",
|
||||
"submap, reset",
|
||||
"hyprpanel -q"
|
||||
]
|
||||
|
||||
TYPE_MAP = {
|
||||
'bind': ' ',
|
||||
'bindl': '',
|
||||
'bindle': 'Lock',
|
||||
'bindm': '',
|
||||
}
|
||||
SUBMAP_MAP ={
|
||||
"main": "",
|
||||
"capsmode": "",
|
||||
"opacity": "",
|
||||
}
|
||||
|
||||
KEYCODES = {
|
||||
20: "-"
|
||||
}
|
||||
|
||||
# Read the keybinds.conf file
|
||||
def read_keybinds(file_path = os.path.expanduser('~/.config/hypr/keybinds.conf')):
|
||||
if not os.path.exists(file_path):
|
||||
print(f"Error: The file {file_path} does not exist.")
|
||||
sys.exit(1)
|
||||
|
||||
with open(file_path, 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
return lines
|
||||
|
||||
def parse_keybinds(lines):
|
||||
"""Parse keybinds from the configuration file and return a list of structured keybind information."""
|
||||
keybinds = []
|
||||
variables = {}
|
||||
current_submap = "main"
|
||||
|
||||
for line_num, line in enumerate(lines, 1):
|
||||
line = line.strip()
|
||||
|
||||
# Skip empty lines and comments
|
||||
if not line or line.startswith('#'):
|
||||
continue
|
||||
|
||||
# Handle variable definitions
|
||||
if line.startswith('$'):
|
||||
var_match = re.match(r'\$(\w+)\s*=\s*(.+)', line)
|
||||
if var_match:
|
||||
variables[var_match.group(1)] = var_match.group(2)
|
||||
continue
|
||||
|
||||
# Handle submap declarations
|
||||
if line.startswith('submap ='):
|
||||
submap_match = re.match(r'submap\s*=\s*(\w+)', line)
|
||||
if submap_match:
|
||||
current_submap = submap_match.group(1)
|
||||
continue
|
||||
|
||||
# Handle bind declarations
|
||||
if line.startswith('bind') or line.startswith('bindle') or line.startswith('bindl') or line.startswith('bindm'):
|
||||
bind_match = re.match(r'(bind[lme]?)\s*=\s*([^,]+),\s*([^,]+),\s*(.+)', line)
|
||||
if bind_match:
|
||||
bind_type = bind_match.group(1)
|
||||
modifiers = bind_match.group(2).strip()
|
||||
key = bind_match.group(3).strip()
|
||||
action = bind_match.group(4).strip()
|
||||
|
||||
# Ignore certain actions
|
||||
if any(ignored in action for ignored in IGNORED_ACTIONS):
|
||||
continue
|
||||
|
||||
# Replace variables in the key, modifiers, and action
|
||||
for var_name, var_value in variables.items():
|
||||
modifiers = modifiers.replace(f'${var_name}', var_value)
|
||||
key = key.replace(f'${var_name}', var_value)
|
||||
# action = action.replace(f'${var_name}', var_value)
|
||||
|
||||
# Update for HARDCODED
|
||||
for var_name, var_value in HARDCODED_VARIABLES.items():
|
||||
modifiers = modifiers.replace(f'{var_name}', var_value)
|
||||
key = key.replace(f'{var_name}', var_value)
|
||||
action = action.replace(f'{var_name}', var_value)
|
||||
|
||||
if action.startswith('submap,'):
|
||||
smap = action.split(',')[1].strip()
|
||||
action = SUBMAP_MAP.get(smap, smap)
|
||||
|
||||
# Convert any 'code:<number>' in key to the corresponding Unicode character
|
||||
code_match = re.match(r'code:(\d+)', key)
|
||||
if code_match:
|
||||
code_num = int(code_match.group(1))
|
||||
key = KEYCODES[code_num] if code_num in KEYCODES else f"code:{code_num}"
|
||||
|
||||
# Add icon for logging
|
||||
if ">>" in action:
|
||||
log_action = action.split('>>')[0].strip()
|
||||
action = f"{log_action} "
|
||||
|
||||
|
||||
# Cleanup action
|
||||
action = action.strip(',')
|
||||
action = action.replace(',', '')
|
||||
|
||||
# Format the keybind description
|
||||
key_combo = f"{modifiers} + {key}" if modifiers else key
|
||||
|
||||
keybind_info = {
|
||||
'type': bind_type,
|
||||
'submap': current_submap,
|
||||
'key_combo': key_combo,
|
||||
'action': action,
|
||||
'line_num': line_num,
|
||||
'raw_line': line
|
||||
}
|
||||
keybinds.append(keybind_info)
|
||||
return keybinds
|
||||
|
||||
def format_keybind_for_display(keybind):
|
||||
"""Format a keybind for display in fzf or terminal."""
|
||||
submap_prefix = f"{SUBMAP_MAP.get(keybind['submap'], keybind['submap'].upper())} " if keybind['submap'] in SUBMAP_MAP else f"{keybind['submap'].upper()} "
|
||||
type_prefix = f"{TYPE_MAP.get(keybind['type'], 'Unknown')} " if keybind['type'] in TYPE_MAP else f"{keybind['type']} "
|
||||
|
||||
# Clean up the action for display
|
||||
action = keybind['action']
|
||||
return f"{submap_prefix:3}{type_prefix}{keybind['key_combo']:30} → {action}"
|
||||
|
||||
def run_fzf_search(keybinds):
|
||||
"""Run fzf with the keybinds for interactive searching."""
|
||||
try:
|
||||
# Prepare the input for fzf
|
||||
fzf_input = []
|
||||
for keybind in keybinds:
|
||||
formatted = format_keybind_for_display(keybind)
|
||||
fzf_input.append(formatted)
|
||||
|
||||
# Run fzf
|
||||
process = subprocess.Popen(
|
||||
['fzf', '--reverse', '--border', '--preview-window=up:3',
|
||||
'--header=Hyprland Keybinds - Press Enter or Esc to exit',
|
||||
],
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
text=True
|
||||
)
|
||||
|
||||
stdout, stderr = process.communicate(input='\n'.join(fzf_input))
|
||||
|
||||
if process.returncode == 0 and stdout.strip():
|
||||
# Find the selected keybind
|
||||
selected_line = stdout.strip()
|
||||
for keybind in keybinds:
|
||||
if format_keybind_for_display(keybind) == selected_line:
|
||||
print(f"\nSelected Keybind Details:")
|
||||
print(f"Key Combination: {keybind['key_combo']}")
|
||||
print(f"Action: {keybind['action']}")
|
||||
print(f"Type: {keybind['type']}")
|
||||
print(f"Submap: {keybind['submap']}")
|
||||
print(f"Line: {keybind['line_num']}")
|
||||
print(f"Raw: {keybind['raw_line']}")
|
||||
break
|
||||
|
||||
except FileNotFoundError:
|
||||
print("Error: fzf is not installed. Please install fzf to use interactive search.")
|
||||
print("On most distributions: sudo pacman -S fzf # or apt install fzf")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"Error running fzf: {e}")
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Parse command line arguments - default to fzf unless --no-fzf is specified
|
||||
use_fzf = not (len(sys.argv) > 1 and sys.argv[1] in ['--no-fzf', '-n', 'no-fzf'])
|
||||
|
||||
# Read and parse keybinds
|
||||
raw_lines = read_keybinds()
|
||||
parsed_keybinds = parse_keybinds(raw_lines)
|
||||
|
||||
if use_fzf:
|
||||
# Use fzf for interactive searching
|
||||
if not run_fzf_search(parsed_keybinds):
|
||||
# Fallback to regular display if fzf fails
|
||||
use_fzf = False
|
||||
|
||||
if not use_fzf:
|
||||
print("Hyprland Keybinds Help:")
|
||||
print("=" * 50)
|
||||
print(f"Found {len(parsed_keybinds)} keybinds\n")
|
||||
|
||||
# Group by submap for better organization
|
||||
submaps = {}
|
||||
for keybind in parsed_keybinds:
|
||||
submap = keybind['submap']
|
||||
if submap not in submaps:
|
||||
submaps[submap] = []
|
||||
submaps[submap].append(keybind)
|
||||
|
||||
# Display keybinds grouped by submap
|
||||
for submap_name, submap_keybinds in submaps.items():
|
||||
if submap_name != 'main':
|
||||
print(f"\n[{submap_name.upper()} SUBMAP]")
|
||||
print("-" * 30)
|
||||
else:
|
||||
print("[MAIN KEYBINDS]")
|
||||
print("-" * 30)
|
||||
|
||||
for keybind in submap_keybinds:
|
||||
print(format_keybind_for_display(keybind))
|
||||
|
||||
print(f"\n{'-' * 50}")
|
||||
print("Usage: python help.py [--no-fzf] to disable interactive search")
|
||||
print("For more information, refer to the Hyprland documentation.")
|
||||
print("You can also customize your keybinds in the keybinds.conf file.")
|
||||
|
||||
# Wait for user input before exiting
|
||||
input("\nPress Enter to exit...")
|
||||
57
.config/hypr/scripts/lock.sh
Executable file
57
.config/hypr/scripts/lock.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Preparing hyprlock configuration..."
|
||||
# Path to hyprlock configuration file
|
||||
CONF="$HOME/.config/hypr/hyprlock.conf"
|
||||
# Get the list of outputs
|
||||
mapfile -t outputs < <(hyprctl -j monitors | jq -r '.[].name')
|
||||
|
||||
# Generate the background blocks for each output
|
||||
block=""
|
||||
for output in "${outputs[@]}"; do
|
||||
block+=$'background {\n'
|
||||
block+=$" monitor = ${output}\n"
|
||||
block+=$" path = screenshot\n"
|
||||
block+=$" reload_time = 0\n"
|
||||
block+=$" reload_cmd = echo \"/tmp/${output}-lockscreen.png\"\n"
|
||||
block+=$" crossfade_time = 1\n"
|
||||
block+=$'}\n\n'
|
||||
done
|
||||
# Insert the generated blocks into the configuration file
|
||||
awk -v content="$block" '
|
||||
/^# AUTO BACKGROUND$/ { print; print content; inside=1; next }
|
||||
inside && /^# AUTO BACKGROUND END$/ { print; inside=0; next }
|
||||
inside { next }
|
||||
{ print }
|
||||
' "$CONF" > "${CONF}.tmp" && mv "${CONF}.tmp" "$CONF"
|
||||
|
||||
echo "Starting hyprlock..."
|
||||
/home/nathan/Git/hyprlock/build/hyprlock &
|
||||
|
||||
echo "Taking screenshots for lock screen..."
|
||||
# Take a screenshot of each output before locking (!THIS IS SLOW!)
|
||||
for output in "${outputs[@]}"; do
|
||||
# grim -o "$output" "/tmp/${output}-lockscreen.png" &
|
||||
$HOME/.config/hypr/scripts/spots.sh -s 8 <(grim -o "$output" -) "/tmp/${output}-lockscreen.png" &
|
||||
done
|
||||
|
||||
echo "Waiting for screenshots to complete..."
|
||||
# Wait for all image processing to complete
|
||||
while pgrep -x spots.sh >/dev/null; do
|
||||
sleep 0.1
|
||||
done
|
||||
# Notify hyprlock to reload backgrounds
|
||||
echo "Reloading hyprlock backgrounds..."
|
||||
pkill -USR2 hyprlock
|
||||
|
||||
echo "Waiting for hyprlock to exit..."
|
||||
wait
|
||||
|
||||
echo "Hyprlock exited. Cleaning up..."
|
||||
# Cleanup: Restore hyprlock.conf to original state
|
||||
sed -i '/^# AUTO BACKGROUND$/,/^# AUTO BACKGROUND END$/{//!d}' "$CONF"
|
||||
|
||||
# Remove the screenshots
|
||||
for output in "${outputs[@]}"; do
|
||||
rm "/tmp/${output}-lockscreen.png"
|
||||
done
|
||||
47
.config/hypr/scripts/opacity.py
Executable file
47
.config/hypr/scripts/opacity.py
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import subprocess
|
||||
import os
|
||||
|
||||
|
||||
def tag_window(tag:str):
|
||||
"""
|
||||
Tags the currently focused window with the specified tag.
|
||||
"""
|
||||
command = f"hyprctl dispatch tagwindow {tag}"
|
||||
subprocess.run(command, shell=True)
|
||||
|
||||
|
||||
def notify(message: str):
|
||||
"""
|
||||
Displays a notification with the specified message.
|
||||
"""
|
||||
command = f'hyprctl notify 1 1000 0 "{message}"';
|
||||
subprocess.run(command, shell=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: python3 opacity.py <opacity_value>")
|
||||
sys.exit(1)
|
||||
|
||||
opacity_value = sys.argv[1]
|
||||
# Validate the opacity value
|
||||
valid_opacities = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1']
|
||||
if opacity_value not in valid_opacities and opacity_value != '-1':
|
||||
print(f"Invalid opacity value: {opacity_value}. Valid values are: {', '.join(valid_opacities)}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# If the opacity value is -1, reset to default
|
||||
if opacity_value == '-1':
|
||||
notify("Resetting opacity to default")
|
||||
|
||||
for op in valid_opacities:
|
||||
tag_window(f'-- -opacity:{op}')
|
||||
else:
|
||||
notify(f"Setting opacity to {opacity_value}")
|
||||
for op in valid_opacities:
|
||||
if op == opacity_value:
|
||||
tag_window(f'opacity:{op}')
|
||||
else:
|
||||
tag_window(f'-- -opacity:{op}')
|
||||
5
.config/hypr/scripts/songdetail.sh
Executable file
5
.config/hypr/scripts/songdetail.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
song_info=$(playerctl metadata --format '{{title}} {{artist}}')
|
||||
|
||||
echo "$song_info"
|
||||
380
.config/hypr/scripts/spots.sh
Executable file
380
.config/hypr/scripts/spots.sh
Executable file
@@ -0,0 +1,380 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Developed by Fred Weinhaus 8/4/2011 .......... 5/28/2015
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
#
|
||||
# Licensing:
|
||||
#
|
||||
# Copyright © Fred Weinhaus
|
||||
#
|
||||
# My scripts are available free of charge for non-commercial use, ONLY.
|
||||
#
|
||||
# For use of my scripts in commercial (for-profit) environments or
|
||||
# non-free applications, please contact me (Fred Weinhaus) for
|
||||
# licensing arrangements. My email address is fmw at alink dot net.
|
||||
#
|
||||
# If you: 1) redistribute, 2) incorporate any of these scripts into other
|
||||
# free applications or 3) reprogram them in another scripting language,
|
||||
# then you must contact me for permission, especially if the result might
|
||||
# be used in a commercial or for-profit environment.
|
||||
#
|
||||
# My scripts are also subject, in a subordinate manner, to the ImageMagick
|
||||
# license, which can be found at: http://www.imagemagick.org/script/license.php
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
#
|
||||
####
|
||||
#
|
||||
# USAGE: spots [-s size] [-t type] [-p pad] [-b bgcolor] [-e edge] [-E ecolor] [-B brightness] [-C Contrast] infile [spotfile] outfile
|
||||
# USAGE: spots [-help]
|
||||
#
|
||||
# OPTIONS:
|
||||
#
|
||||
# -s size spot size expressed as WxH in pixels; default=5x5
|
||||
# -t type type of spot shape; choices are: circle (or c),
|
||||
# square (or s), or diamond (or d); default=circle
|
||||
# -p pad padding or border around spot cell in pixels on
|
||||
# each side; integer>=0; default=1
|
||||
# -b bgcolor background color to apply to image where spot
|
||||
# does not cover; any valid IM color; default=black
|
||||
# -e edge edge thickness accent around spot shape;
|
||||
# integer>=0; default=0
|
||||
# -E ecolor color of accent edge around spot shape;
|
||||
# any valid IM color; default=gray
|
||||
# -B brightness percent change in brightness of spots;
|
||||
# integer; default=0
|
||||
# -C contrast percent change in contrast of spots;
|
||||
# integer; default=0
|
||||
#
|
||||
#
|
||||
###
|
||||
#
|
||||
# NAME: SPOTS
|
||||
#
|
||||
# PURPOSE: Converts the image into a series of uniform-colored spots.
|
||||
#
|
||||
# DESCRIPTION: SPOTS converts the image into a series of uniform-colored
|
||||
# spots. The shape of spots allowed are: circle (ellipse), square (rectangle)
|
||||
# or diamond. The spot size may be adjusted. A colored edge may also be
|
||||
# placed around each spot. An optional spotfile may be provided to define
|
||||
# some other shape than those built-in.
|
||||
#
|
||||
#
|
||||
# OPTIONS:
|
||||
#
|
||||
# -s size ... SIZE is the WxH dimensions of the spot cell. Values are a
|
||||
# pair of positive integers separated by an x. The default=5x5. If only
|
||||
# one value is provided, it will be used for both. This parameter is
|
||||
# ignored if a spotfile is provided.
|
||||
#
|
||||
# -t type ... TYPE is the type of spot shape. The choices are: circle (or c),
|
||||
# square (or s), diamond (or d). These may be asymmetric as ellipses or
|
||||
# rectangles as controlled by the size parameters. This parameter is
|
||||
# ignored if a spotfile is provided.
|
||||
#
|
||||
# -p pad ... PAD is the border around the spot cell. Values are integers>=0.
|
||||
# The default=0.
|
||||
#
|
||||
# -b bgcolor ... BGCOLOR is the color to apply to the image between the spots.
|
||||
# Any valid IM color is allowed. The default=black.
|
||||
#
|
||||
# -e edge ... EDGE is the thickness of the optional edge hightlight around
|
||||
# the spot shape. Values are integers>=0. The default=0.
|
||||
#
|
||||
# -E ecolor ... ECOLOR is the color of the edge highlight. Any valid IM color
|
||||
# is allowed. The default=gray.
|
||||
#
|
||||
# -B brightness ... BRIGHTNESS is the percent change in brightness of the
|
||||
# spot colors. Values are integers. The default=0
|
||||
#
|
||||
# -C contrast ... CONTRAST is the percent change in contrast of the
|
||||
# spot colors. Values are integers. The default=0
|
||||
#
|
||||
# The spotfile must be a binary mask with white for the shape and black
|
||||
# for the background and no alpha channel.
|
||||
#
|
||||
# REQUIREMENTS: IM 6.3.6-1 or higher due to the use of
|
||||
# -define distort:viewport=WxH+X+Y with -distort SRT.
|
||||
#
|
||||
# CAVEAT: No guarantee that this script will work on all platforms,
|
||||
# nor that trapping of inconsistent parameters is complete and
|
||||
# foolproof. Use At Your Own Risk.
|
||||
#
|
||||
######
|
||||
#
|
||||
|
||||
# set default values
|
||||
size="5x5" # spot WxH
|
||||
type="circle" # circle, square, diamond
|
||||
pad=1 # border padding
|
||||
edge=0 # edge width
|
||||
ecolor="gray" # edge color
|
||||
bgcolor="black" # background color
|
||||
bri=0 # brightness
|
||||
con=0 # contrast
|
||||
|
||||
# set directory for temporary files
|
||||
dir="." # suggestions are dir="." or dir="/tmp"
|
||||
|
||||
# set up functions to report Usage and Usage with Description
|
||||
PROGNAME=`type $0 | awk '{print $3}'` # search for executable on path
|
||||
PROGDIR=`dirname $PROGNAME` # extract directory of program
|
||||
PROGNAME=`basename $PROGNAME` # base name of program
|
||||
usage1()
|
||||
{
|
||||
echo >&2 ""
|
||||
echo >&2 "$PROGNAME:" "$@"
|
||||
sed >&2 -e '1,/^####/d; /^###/g; /^#/!q; s/^#//; s/^ //; 4,$p' "$PROGDIR/$PROGNAME"
|
||||
}
|
||||
usage2()
|
||||
{
|
||||
echo >&2 ""
|
||||
echo >&2 "$PROGNAME:" "$@"
|
||||
sed >&2 -e '1,/^####/d; /^######/g; /^#/!q; s/^#*//; s/^ //; 4,$p' "$PROGDIR/$PROGNAME"
|
||||
}
|
||||
|
||||
|
||||
# function to report error messages
|
||||
errMsg()
|
||||
{
|
||||
echo ""
|
||||
echo $1
|
||||
echo ""
|
||||
usage1
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
# function to test for minus at start of value of second part of option 1 or 2
|
||||
checkMinus()
|
||||
{
|
||||
test=`echo "$1" | grep -c '^-.*$'` # returns 1 if match; 0 otherwise
|
||||
[ $test -eq 1 ] && errMsg "$errorMsg"
|
||||
}
|
||||
|
||||
# test for correct number of arguments and get values
|
||||
if [ $# -eq 0 ]
|
||||
then
|
||||
# help information
|
||||
echo ""
|
||||
usage2
|
||||
exit 0
|
||||
elif [ $# -gt 19 ]
|
||||
then
|
||||
errMsg "--- TOO MANY ARGUMENTS WERE PROVIDED ---"
|
||||
else
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
# get parameter values
|
||||
case "$1" in
|
||||
-help) # help information
|
||||
echo ""
|
||||
usage2
|
||||
exit 0
|
||||
;;
|
||||
-s) # get size
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID SIZE SPECIFICATION ---"
|
||||
checkMinus "$1"
|
||||
size=`expr "$1" : '\([0-9]*[x]*[0-9]*\)'`
|
||||
[ "$size" = "" ] && errMsg "--- SIZE=$size MUST BE A PAIR OF POSITIVE INTEGERS (with no sign) SEPARATED BY AN x ---"
|
||||
;;
|
||||
-t) # type
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID TYPE SPECIFICATION ---"
|
||||
checkMinus "$1"
|
||||
# test mode values
|
||||
type="$1"
|
||||
type=`echo "$type" | tr "[:upper:]" "[:lower:]"`
|
||||
case "$type" in
|
||||
circle|c) type="circle" ;;
|
||||
square|s) type="square" ;;
|
||||
diamond|d) type="diamond" ;;
|
||||
*) errMsg "--- TYPE=$type IS AN INVALID VALUE ---"
|
||||
esac
|
||||
;;
|
||||
-p) # get pad
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID PAD SPECIFICATION ---"
|
||||
checkMinus "$1"
|
||||
pad=`expr "$1" : '\([0-9]*\)'`
|
||||
[ "$pad" = "" ] && errMsg "--- PAD=$pad MUST BE A NON-NEGATIVE INTEGER (with no sign) ---"
|
||||
;;
|
||||
-b) # get bgcolor
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID BGCOLOR SPECIFICATION ---"
|
||||
checkMinus "$1"
|
||||
bgcolor="$1"
|
||||
;;
|
||||
-e) # get edge
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID EDGE SPECIFICATION ---"
|
||||
checkMinus "$1"
|
||||
edge=`expr "$1" : '\([0-9]*\)'`
|
||||
[ "$edge" = "" ] && errMsg "--- EDGE=$edge MUST BE A NON-NEGATIVE INTEGER (with no sign) ---"
|
||||
;;
|
||||
-E) # get ecolor
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID ECOLOR SPECIFICATION ---"
|
||||
checkMinus "$1"
|
||||
ecolor="$1"
|
||||
;;
|
||||
-B) # get brightness
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID BRIGHTNESS SPECIFICATION ---"
|
||||
#checkMinus "$1"
|
||||
bri=`expr "$1" : '\([-0-9]*\)'`
|
||||
[ "$bri" = "" ] && errMsg "--- BRIGHTNESS=$bri MUST BE AN INTEGER (with no sign) ---"
|
||||
;;
|
||||
-C) # get contrast
|
||||
shift # to get the next parameter
|
||||
# test if parameter starts with minus sign
|
||||
errorMsg="--- INVALID CONTRAST SPECIFICATION ---"
|
||||
#checkMinus "$1"
|
||||
con=`expr "$1" : '\([-0-9]*\)'`
|
||||
[ "$con" = "" ] && errMsg "--- CONTRAST=$con MUST BE AN INTEGER (with no sign) ---"
|
||||
;;
|
||||
-) # STDIN and end of arguments
|
||||
break
|
||||
;;
|
||||
-*) # any other - argument
|
||||
errMsg "--- UNKNOWN OPTION ---"
|
||||
;;
|
||||
*) # end of arguments
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift # next option
|
||||
done
|
||||
#
|
||||
# get infile and outfile and spotfile
|
||||
if [ $# -eq 3 ]; then
|
||||
infile="$1"
|
||||
spotfile="$2"
|
||||
outfile="$3"
|
||||
elif [ $# -eq 2 ]; then
|
||||
infile="$1"
|
||||
outfile="$2"
|
||||
else
|
||||
errMsg "--- INCONSISTENT NUMBER OF IMAGES PROVIDED ---"
|
||||
fi
|
||||
fi
|
||||
|
||||
# test that infile provided
|
||||
[ "$infile" = "" ] && errMsg "NO INPUT FILE SPECIFIED"
|
||||
|
||||
# test that outfile provided
|
||||
[ "$outfile" = "" ] && errMsg "NO OUTPUT FILE SPECIFIED"
|
||||
|
||||
# create temp files
|
||||
tmpA1="$dir/spots_1_$$.mpc"
|
||||
tmpB1="$dir/spots_1_$$.cache"
|
||||
tmpA2="$dir/spots_2_$$.mpc"
|
||||
tmpB2="$dir/spots_2_$$.cache"
|
||||
trap "rm -f $tmpA1 $tmpB1 $tmpA2 $tmpB2;" 0
|
||||
trap "rm -f $tmpA1 $tmpB1 $tmpA2 $tmpB2; exit 1" 1 2 3 15
|
||||
trap "rm -f $tmpA1 $tmpB1 $tmpA2 $tmpB2; exit 1" ERR
|
||||
|
||||
# setup brightness contrast
|
||||
if [ "$bri" = "0" -a "$con" = "0" ]; then
|
||||
bricon=""
|
||||
else
|
||||
bricon="-brightness-contrast $bri,$con"
|
||||
fi
|
||||
|
||||
# test input image
|
||||
magick -quiet "$infile" $bricon -clamp +repage "$tmpA1" ||
|
||||
errMsg "--- FILE $infile DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---"
|
||||
|
||||
# test spot file if exists
|
||||
if [ "$spotfile" != "" ]; then
|
||||
magick -quiet "$spotfile" -alpha off +repage "$tmpA2" ||
|
||||
errMsg "--- FILE $spotfile DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---"
|
||||
fi
|
||||
|
||||
# get image width, height and aspect
|
||||
ww=`magick $tmpA1 -ping -format "%w" info:`
|
||||
hh=`magick $tmpA1 -ping -format "%h" info:`
|
||||
|
||||
# get size of spot and center of spot and last pixel of spot and pad size
|
||||
if [ "$spotfile" = "" ]; then
|
||||
sw=`echo $size | cut -dx -f1`
|
||||
sh=`echo $size | cut -dx -f2`
|
||||
scx=`magick xc: -format "%[fx:($sw-1)/2]" info:`
|
||||
scy=`magick xc: -format "%[fx:($sh-1)/2]" info:`
|
||||
lx=$((sw-1))
|
||||
ly=$((sh-1))
|
||||
|
||||
# get pad size
|
||||
pw=$((sw+2*pad))
|
||||
ph=$((sh+2*pad))
|
||||
|
||||
else
|
||||
pw=`magick $tmpA2 -ping -format "%w" info:`
|
||||
ph=`magick $tmpA2 -ping -format "%h" info:`
|
||||
fi
|
||||
|
||||
|
||||
if [ "$spotfile" = "" ]; then
|
||||
if [ "$pad" = "0" ]; then
|
||||
padding=""
|
||||
else
|
||||
padding="-bordercolor black -border $pad"
|
||||
fi
|
||||
|
||||
# create spot template
|
||||
if [ "$type" = "circle" ]; then
|
||||
magick -size ${sw}x${sh} xc:black \
|
||||
+antialias -fill white -draw "ellipse $scx,$scy $scx,$scy 0,360" -alpha off \
|
||||
$padding \
|
||||
$tmpA2
|
||||
|
||||
elif [ "$type" = "square" ]; then
|
||||
magick -size ${sw}x${sh} xc:black \
|
||||
+antialias -fill white -draw "rectangle 0,0 $lx,$ly" -alpha off \
|
||||
$padding \
|
||||
$tmpA2
|
||||
|
||||
elif [ "$type" = "diamond" ]; then
|
||||
magick -size ${sw}x${sh} xc:black \
|
||||
+antialias -fill white -draw "polygon $scx,0 $lx,$scy $scx,$ly 0,$scy" -alpha off \
|
||||
$padding \
|
||||
$tmpA2
|
||||
fi
|
||||
fi
|
||||
|
||||
# compute xmin and ymin and virtual canvas size
|
||||
xmin=`magick xc: -format "%[fx:ceil($ww/$pw)]" info:`
|
||||
ymin=`magick xc: -format "%[fx:ceil($hh/$ph)]" info:`
|
||||
www=`magick xc: -format "%[fx:$xmin*$pw]" info:`
|
||||
hhh=`magick xc: -format "%[fx:$ymin*$ph]" info:`
|
||||
|
||||
|
||||
# process image
|
||||
if [ "$edge" = "0" ]; then
|
||||
magick \( $tmpA1 -define distort:viewport=${www}x${hhh}+0+0 -virtual-pixel mirror -distort SRT 0 \
|
||||
-scale ${xmin}x${ymin}! -scale ${www}x${hhh}! -crop ${ww}x${hh}+0+0 +repage \) \
|
||||
\( $tmpA2 -write mpr:tile +delete -size ${ww}x${hh}! tile:mpr:tile \) \
|
||||
-alpha off -compose copy_opacity -composite -compose over \
|
||||
-background $bgcolor -flatten \
|
||||
"$outfile"
|
||||
else
|
||||
magick \( $tmpA1 -define distort:viewport=${www}x${hhh}+0 -virtual-pixel mirror -distort SRT 0 \
|
||||
-scale ${xmin}x${ymin}! -scale ${www}x${hhh}! -crop ${ww}x${hh}+0+0 +repage \) \
|
||||
\( $tmpA2 -write mpr:tile +delete -size ${ww}x${hh}! tile:mpr:tile \) \
|
||||
\( -clone 1 -threshold 0 -edge $edge -clamp -fill $ecolor -opaque white -transparent black \) \
|
||||
\( -clone 0 -clone 1 -alpha off -compose copy_opacity -composite -compose over \
|
||||
-background $bgcolor -flatten \) \
|
||||
-delete 0,1 +swap -compose over -composite \
|
||||
"$outfile"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
103
.config/hypr/scripts/stats.sh
Executable file
103
.config/hypr/scripts/stats.sh
Executable file
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Get system statistics
|
||||
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}' | cut -d. -f1)
|
||||
MEMORY_USAGE=$(free -m | awk 'NR==2{printf "%.0f", $3*100/$2 }')
|
||||
|
||||
CPU_TEMP=""
|
||||
# Get temp info (CPU temp)
|
||||
if [ -r /sys/class/thermal/thermal_zone0/temp ]; then
|
||||
CPU_TEMP_RAW=$(cat /sys/class/thermal/thermal_zone0/temp)
|
||||
CPU_TEMP_C=$((CPU_TEMP_RAW / 1000))
|
||||
CPU_TEMP=" ${CPU_TEMP_C}°C"
|
||||
fi
|
||||
|
||||
|
||||
echo " ${CPU_USAGE}%${CPU_TEMP} ${MEMORY_USAGE}%"
|
||||
|
||||
# GPU info
|
||||
GPU_USAGE=$(cat /sys/class/drm/card1/device/gpu_busy_percent)
|
||||
GPU_VRAM_USED=$(cat /sys/class/drm/card1/device/mem_info_vram_used)
|
||||
GPU_VRAM_TOTAL=$(cat /sys/class/drm/card1/device/mem_info_vram_total)
|
||||
GPU_VRAM_USAGE=$((GPU_VRAM_USED * 100 / GPU_VRAM_TOTAL))
|
||||
|
||||
|
||||
echo " ${GPU_USAGE}% ${GPU_VRAM_USAGE}%"
|
||||
|
||||
# Battery time: find battery device via upower and parse "time to full" / "time to empty"
|
||||
# fallback to sysfs if upower not available
|
||||
BAT_PATH=""
|
||||
if command -v upower >/dev/null 2>&1; then
|
||||
BAT_PATH=$(upower -e | grep -E "battery|BAT" | head -n1)
|
||||
fi
|
||||
|
||||
if [ -z "$BAT_PATH" ]; then
|
||||
# try linux sysfs battery status file
|
||||
if [ -r /sys/class/power_supply/BAT0/status ]; then
|
||||
BAT_STATUS_FILE="/sys/class/power_supply/BAT0/status"
|
||||
else
|
||||
BAT_STATUS_FILE=""
|
||||
fi
|
||||
BATTERY_STATUS=""
|
||||
if [ -n "$BAT_STATUS_FILE" ]; then
|
||||
BATTERY_STATUS=$(cat "$BAT_STATUS_FILE")
|
||||
fi
|
||||
else
|
||||
# use upower to read battery properties
|
||||
BATTERY_STATUS=$(upower -i "$BAT_PATH" | awk -F: '/state:/ {gsub(/^[ \t]+|[ \t]+$/,"",$2); print $2; exit}')
|
||||
fi
|
||||
|
||||
if [ "$BATTERY_STATUS" = "charging" ] || [ "$BATTERY_STATUS" = "Charging" ]; then
|
||||
if [ -n "$BAT_PATH" ]; then
|
||||
# get everything after the colon and trim
|
||||
TIME_TO_FULL=$(upower -i "$BAT_PATH" | sed -n 's/^[ \t]*time to full:[ \t]*//Ip')
|
||||
else
|
||||
TIME_TO_FULL=""
|
||||
fi
|
||||
if [ -n "$TIME_TO_FULL" ]; then
|
||||
echo " ${TIME_TO_FULL} to full"
|
||||
else
|
||||
echo " Charging"
|
||||
fi
|
||||
elif [ "$BATTERY_STATUS" = "discharging" ] || [ "$BATTERY_STATUS" = "Discharging" ]; then
|
||||
if [ -n "$BAT_PATH" ]; then
|
||||
TIME_TO_EMPTY=$(upower -i "$BAT_PATH" | sed -n 's/^[ \t]*time to empty:[ \t]*//Ip')
|
||||
else
|
||||
TIME_TO_EMPTY=""
|
||||
fi
|
||||
if [ -n "$TIME_TO_EMPTY" ]; then
|
||||
echo " ${TIME_TO_EMPTY} to empty"
|
||||
else
|
||||
echo " Discharging"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check if internet is up by pinging a reliable host
|
||||
if ping -c 1 -W 1 woodburn.au > /dev/null 2>&1; then
|
||||
INTERNET_STATUS="up"
|
||||
else
|
||||
INTERNET_STATUS="down"
|
||||
fi
|
||||
|
||||
# Get WIFI SSID if connected
|
||||
echo " Internet: ${INTERNET_STATUS}"
|
||||
|
||||
# Get network info for each active interface
|
||||
for IFACE in $(ls /sys/class/net/ | grep -E '^(en|wl|wg|tailscale|tun)'); do
|
||||
IFACE_STATE=""
|
||||
# safe read operstate
|
||||
if [ -r "/sys/class/net/$IFACE/operstate" ]; then
|
||||
IFACE_STATE=$(cat "/sys/class/net/$IFACE/operstate")
|
||||
fi
|
||||
# show physical interfaces when up, and always show virtual interfaces (tailscale/wg/tun)
|
||||
if [ "$IFACE_STATE" = "up" ] || [[ "$IFACE" == tailscale* ]] || [[ "$IFACE" == wg* ]] || [[ "$IFACE" == tun* ]]; then
|
||||
RX_BYTES=$(cat "/sys/class/net/$IFACE/statistics/rx_bytes" 2>/dev/null || echo 0)
|
||||
TX_BYTES=$(cat "/sys/class/net/$IFACE/statistics/tx_bytes" 2>/dev/null || echo 0)
|
||||
RX_HR=$(numfmt --to=iec --suffix=B "$RX_BYTES")
|
||||
TX_HR=$(numfmt --to=iec --suffix=B "$TX_BYTES")
|
||||
|
||||
echo " ${IFACE}: ${RX_HR} ${TX_HR}"
|
||||
fi
|
||||
done
|
||||
|
||||
# curl https://wttr.in/Canberra\?format\="%l:+%t+UV:+%u"
|
||||
4
.config/hypr/scripts/wallpaper.sh
Executable file
4
.config/hypr/scripts/wallpaper.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
systemctl --user stop wallpaper.timer # Disable wallpaper changes
|
||||
pgrep -x WallRizz && pkill -x WallRizz || kitty -o allow_remote_control=yes --class float-80 WallRizz -z list -n -d ~/.config/backgrounds
|
||||
@@ -1,7 +1,11 @@
|
||||
exec-once = hyprpm reload -n
|
||||
exec-once = hyprpaper
|
||||
exec-once = hyprpanel
|
||||
exec-once = hyprpanel > ~/.logs/hyprpanel.log
|
||||
# exec-once = hyprpaper > ~/.logs/hyprpaper.log # Using swww now
|
||||
exec-once = hypridle
|
||||
|
||||
exec-once = /usr/bin/kdeconnectd
|
||||
exec-once = systemctl --user start hyprpolkitagent
|
||||
exec-once = ~/.config/hypr/scripts/exec-once.sh > ~/.logs/exec-once.log 2>&1
|
||||
|
||||
# Random wallpaper
|
||||
exec-once = wl-clip-persist --clipboard regular
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
# hyprlang noerror true
|
||||
|
||||
|
||||
# Default floating rules to stop windows being too large or small
|
||||
windowrulev2 = size <80% <80%,floating:1
|
||||
windowrulev2 = size >50% >75%, class:(^org.kde.kdenlive$)
|
||||
windowrule = float, class:(^xdg-desktop-portal-gtk$)
|
||||
windowrule = size <80% <80%, class:(^xdg-desktop-portal-gtk$)
|
||||
# windowrulev2 = size >50% >50%,floating:1
|
||||
|
||||
|
||||
# windowrulev2 = float,class:(clipse)
|
||||
# windowrulev2 = size 622 652,class:(clipse)
|
||||
# windowrulev2 = stayfocused,class:(clipse)
|
||||
# windowrulev2 = opacity 1 override 1 override,class:(clipse)
|
||||
|
||||
windowrulev2 = float,class:(float)
|
||||
windowrule = size <80% <80%,class:(float)
|
||||
@@ -18,25 +26,82 @@ windowrulev2 = float,class:(mpv)
|
||||
windowrulev2 = float,class:^(brave-)(.*)(-.*)$
|
||||
windowrulev2 = move onscreen cursor,class:^(brave-)(.*)(-.*)$
|
||||
|
||||
# # Start windows
|
||||
stickyrule = class:discord,5
|
||||
stickyrule = class:org.telegram.desktop,5
|
||||
stickyrule = class:Slack,5
|
||||
|
||||
windowrulev2 = move onscreen cursor -50% 0,class:^(com.nextcloud.desktopclient.nextcloud)$
|
||||
windowrulev2 = float,class:^(com.nextcloud.desktopclient.nextcloud)$
|
||||
windowrule = size 800 500,class:^(com.nextcloud.desktopclient.nextcloud)$
|
||||
|
||||
workspace = special:gromit, gapsin:0, gapsout:0, shadow:0, on-created-empty: gromit-mpx -a
|
||||
windowrule = noblur, class:^(Gromit-mpx)$
|
||||
windowrule = opacity 1 override, 1 override, class:^(Gromit-mpx)$
|
||||
windowrule = opacity 1 override 1 override, class:^(Gromit-mpx)$
|
||||
windowrule = noshadow, class:^(Gromit-mpx)$
|
||||
windowrule = suppressevent fullscreen, class:^(Gromit-mpx)$
|
||||
windowrule = size 100% 100%, class:^(Gromit-mpx)$
|
||||
|
||||
|
||||
# Floating broken windows
|
||||
windowrule = opacity 1 override 1 override, class:^(xdg-desktop-portal-gtk)$
|
||||
windowrule = stayfocused, class:^(xdg-desktop-portal-gtk)$
|
||||
windowrule = stayfocused, class:^(soffice)$
|
||||
windowrule = stayfocused, class:^(virt-manager)$, title:^$
|
||||
#windowrule = float 1, class:^(xdg-desktop-portal-gtk)$
|
||||
|
||||
# No Opacity windowrule
|
||||
windowrule = opacity 1 override 1 override class:brave-browser
|
||||
windowrule = opacity 1 override 1 override class:mpv
|
||||
windowrulev2 = stayfocused, class:^(Sparrow)$, title:^$, xwayland:1
|
||||
windowrulev2 = focusonactivate 1, class:^(Sparrow)$, title:^$, xwayland:1
|
||||
windowrulev2 = allowsinput 1, class:^(Sparrow)$, title:^$, xwayland:1
|
||||
windowrulev2 = stayfocused, class:^(Sparrow)$, title:^$, xwayland:1
|
||||
|
||||
workspace = special:magic, on-created-empty: alacritty
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
|
||||
# No Opacity windowrules
|
||||
windowrule = opacity 1 override 1 override, class:^(brave-browser)$
|
||||
windowrule = opacity 1 override 1 override, class:^(mpv)$
|
||||
windowrule = opacity 1 override 1 override, class:^(virt-manager)$
|
||||
windowrule = opacity 1 override 1 override, class:^(Bootstrap Studio)$
|
||||
windowrule = opacity 1 override 1 override, class:^(Minecraft)(.*)$
|
||||
windowrule = opacity 1 override 1 override, class:^(gimp)$
|
||||
windowrule = opacity 1 override 1 override, class:^(com.obsproject.Studio)$
|
||||
windowrule = opacity 1 override 1 override, class:^$
|
||||
|
||||
|
||||
# Disable opacity for Alacritty (as it already has a transparent background)
|
||||
windowrule = opacity 1 override 0.75 override, class:^(Alacritty)$
|
||||
|
||||
workspace = special:terminal, on-created-empty: alacritty
|
||||
|
||||
# Tags for opacity
|
||||
windowrule = opacity 0.1 override 0.1 override, tag:opacity:0.1
|
||||
windowrule = opacity 0.2 override 0.2 override, tag:opacity:0.2
|
||||
windowrule = opacity 0.3 override 0.3 override, tag:opacity:0.3
|
||||
windowrule = opacity 0.4 override 0.4 override, tag:opacity:0.4
|
||||
windowrule = opacity 0.5 override 0.5 override, tag:opacity:0.5
|
||||
windowrule = opacity 0.6 override 0.6 override, tag:opacity:0.6
|
||||
windowrule = opacity 0.7 override 0.7 override, tag:opacity:0.7
|
||||
windowrule = opacity 0.8 override 0.8 override, tag:opacity:0.8
|
||||
windowrule = opacity 0.9 override 0.9 override, tag:opacity:0.9
|
||||
windowrule = opacity 1 override 1 override, tag:opacity:1
|
||||
|
||||
|
||||
# freeRDP - Remote Desktop Protocol Client
|
||||
windowrule = float, class:^(xfreerdp)$
|
||||
# match by X11 WM_CLASS you set in xfreerdp
|
||||
windowrule = float, class:^(Autodesk Fusion)$
|
||||
windowrule = center, class:^(Autodesk Fusion)$
|
||||
# prevent tiling / auto-fullscreen for these windows
|
||||
#windowrulev2 = disableautotile, xclass:Autodesk Fusion
|
||||
windowrule = float, class:^(Autodesk Fusion)$
|
||||
# optionally force borderless (if you prefer)
|
||||
windowrule = noborder, class:^(Autodesk Fusion)$
|
||||
|
||||
|
||||
|
||||
|
||||
#! (Still doesn't work) Add org.kde.kdeconnect.daemon for KDE connect pointer
|
||||
windowrule = noblur, class:^(org.kde.kdeconnect.daemon)$ #As it is transparent it will prevent it blurring so you can see what you are ponting at
|
||||
windowrule = nofocus,class:^(org.kde.kdeconnect.daemon)$ # Disables focus so if you have the option to dim on focus it will not dim the window behind it
|
||||
windowrule = nodim,class:^(org.kde.kdeconnect.daemon)$ # As it is out of focus it will prevent it from diming, so its brighter if you have window dimming on
|
||||
windowrule = noshadow,class:^(org.kde.kdeconnect.daemon)$ # Preents it having a shadow if you have window shadows on
|
||||
windowrule = idleinhibit,class:^(org.kde.kdeconnect.daemon)$ # Will prevent your computer from idling if this is in use
|
||||
windowrule = float,class:^(org.kde.kdeconnect.daemon)$
|
||||
# windowrule = maximize,class:^(org.kde.kdeconnect.daemon)$
|
||||
# windowrule = move 0 0,class:^(org.kde.kdeconnect.daemon)$
|
||||
|
||||
|
||||
@@ -18,18 +18,15 @@
|
||||
"dashboard",
|
||||
"media"
|
||||
],
|
||||
"middle": [
|
||||
"custom/vdesks"
|
||||
],
|
||||
"middle": [],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"battery",
|
||||
"systray",
|
||||
"clock",
|
||||
"notifications",
|
||||
"cputemp"
|
||||
"notifications"
|
||||
]
|
||||
},
|
||||
"1": {
|
||||
@@ -37,29 +34,23 @@
|
||||
"dashboard",
|
||||
"media"
|
||||
],
|
||||
"middle": [
|
||||
"custom/vdesks"
|
||||
],
|
||||
"middle": [],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"battery",
|
||||
"systray",
|
||||
"clock",
|
||||
"notifications",
|
||||
"cputemp"
|
||||
"notifications"
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces"
|
||||
],
|
||||
"middle": [
|
||||
"media",
|
||||
"custom/vdesks"
|
||||
"media"
|
||||
],
|
||||
"middle": [],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
@@ -500,5 +491,9 @@
|
||||
"theme.bar.buttons.background_opacity": 100,
|
||||
"theme.osd.border.color": "#ffffff",
|
||||
"theme.osd.enableShadow": true,
|
||||
"terminal": "alacritty -e"
|
||||
"terminal": "alacritty -e",
|
||||
"menus.power.showLabel": true,
|
||||
"bar.customModules.storage.paths": [
|
||||
"/"
|
||||
]
|
||||
}
|
||||
@@ -1,12 +1,2 @@
|
||||
{
|
||||
"custom/vdesks": {
|
||||
"icon": "🖥️",
|
||||
"label": "Virtual Desktops {current}",
|
||||
"tooltip": "Manage virtual desktops",
|
||||
"truncationSize": -1,
|
||||
"execute": "/home/$USER/scripts/vdesks.sh",
|
||||
"executeOnAction": "alacritty --class float -e ping 1.1.1.1",
|
||||
"interval": 1000,
|
||||
"hideOnEmpty": true
|
||||
}
|
||||
}
|
||||
26
.config/kitty/kitty.conf
Normal file
26
.config/kitty/kitty.conf
Normal file
@@ -0,0 +1,26 @@
|
||||
font_family Fira Code Regular
|
||||
font_size 8.0
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
|
||||
background_opacity 1
|
||||
confirm_os_window_close 0
|
||||
|
||||
# change to x11 or wayland or leave auto
|
||||
linux_display_server auto
|
||||
|
||||
scrollback_lines 2000
|
||||
wheel_scroll_min_lines 1
|
||||
|
||||
enable_audio_bell no
|
||||
|
||||
window_padding_width 4
|
||||
|
||||
selection_foreground none
|
||||
selection_background none
|
||||
|
||||
foreground #dddddd
|
||||
background #000000
|
||||
cursor #dddddd
|
||||
allow_remote_control yes
|
||||
@@ -128,6 +128,21 @@ keybinds clear-defaults=true {
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "a" {
|
||||
LaunchOrFocusPlugin "zellij:about" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
};
|
||||
SwitchToMode "Normal"
|
||||
}
|
||||
bind "s" {
|
||||
LaunchOrFocusPlugin "zellij:share" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
};
|
||||
SwitchToMode "Normal"
|
||||
}
|
||||
|
||||
}
|
||||
shared_except "locked" {
|
||||
bind "Alt +" { Resize "Increase"; }
|
||||
@@ -140,7 +155,6 @@ keybinds clear-defaults=true {
|
||||
bind "Alt i" { MoveTab "left"; }
|
||||
bind "Alt n" { NewPane; }
|
||||
bind "Alt o" { MoveTab "right"; }
|
||||
bind "Ctrl q" { Quit; }
|
||||
}
|
||||
shared_except "locked" "move" {
|
||||
bind "Ctrl h" { SwitchToMode "move"; }
|
||||
|
||||
@@ -3,7 +3,7 @@ layout {
|
||||
pane
|
||||
}
|
||||
|
||||
swap_tiled_layout name="Tiled 1" {
|
||||
swap_tiled_layout name="T1" {
|
||||
tab max_panes=4 {
|
||||
pane split_direction="vertical" {
|
||||
pane
|
||||
@@ -25,7 +25,7 @@ layout {
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="Tiled 2" {
|
||||
swap_tiled_layout name="T2" {
|
||||
tab max_panes=5 {
|
||||
pane
|
||||
pane
|
||||
@@ -45,7 +45,7 @@ layout {
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="Tiled 3" {
|
||||
swap_tiled_layout name="T3" {
|
||||
tab max_panes=4 {
|
||||
pane split_direction="vertical" {
|
||||
pane
|
||||
@@ -101,7 +101,7 @@ layout {
|
||||
}
|
||||
}
|
||||
|
||||
swap_floating_layout name="Floating L1" {
|
||||
swap_floating_layout name="FL1" {
|
||||
floating_panes max_panes=1 {
|
||||
pane
|
||||
}
|
||||
@@ -144,7 +144,7 @@ layout {
|
||||
|
||||
hide_frame_for_single_pane "false"
|
||||
|
||||
mode_normal "#[bg=blue] #[] Ctrl + Lock (#[bold]g#[]), #[bold]P#[]ane, #[bold]T#[]ab, Resize (#[bold]n#[]), Move (#[bold]h#[]), #[bold]S#[]earch, Sessi#[bold]o#[]n, #[bold]Q#[]uit"
|
||||
mode_normal "#[bg=blue] #[] Ctrl + Lock (#[bold]g#[]), #[bold]P#[]ane, #[bold]T#[]ab, Resize (#[bold]n#[]), Move (#[bold]h#[]), #[bold]S#[]earch, Sessi#[bold]o#[]n"
|
||||
mode_locked "#[bg=red] #[]"
|
||||
|
||||
mode_pane "#[bg=blue] {name} (p) #[] #[bold]N#[]ew, Close (#[bold]x#[]), Rename (#[bold]c#[]), #[bold]F#[]ullscreen, Float (#[bold]w#[]), #[bold]E#[]mbed"
|
||||
@@ -155,7 +155,7 @@ layout {
|
||||
|
||||
mode_rename_tab "#[bg=blue] {name} #[]"
|
||||
mode_rename_pane "#[bg=blue] {name} #[]"
|
||||
mode_session "#[bg=blue] {name} (o) #[] #[bold]D#[]etach, Session Manager (#[bold]w#[]), Plugins (#[bold]p#[]), #[bold]C#[]onfig"
|
||||
mode_session "#[bg=blue] {name} (o) #[] #[bold]D#[]etach, Session Manager (#[bold]w#[]), Plugins (#[bold]p#[]), #[bold]C#[]onfig, Web (#[bold]s#[]), #[bold]A#[]bout"
|
||||
|
||||
mode_enter_search "#[bg=blue] Search #[] Enter when done"
|
||||
mode_search "#[bg=blue] Search Results #[] Scroll (#[bold]↓↑#[]), #[bold]N#[]ext, #[bold]P#[]revious, #[bold]C#[]ase-insensitive, #[bold]W#[]rap, Wh#[bold]o#[]le word"
|
||||
|
||||
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.webp filter=lfs diff=lfs merge=lfs -text
|
||||
4
.profile
4
.profile
@@ -34,6 +34,8 @@ export PATH="$PATH:/home/nathan/Android/Sdk/cmdline-tools/latest/bin/"
|
||||
. "$HOME/.cargo/env"
|
||||
|
||||
export PATH="/home/nathan/.local/share/solana/install/active_release/bin:$PATH"
|
||||
export HSD_API_KEY=30e7b7974d99c62b241a9daf3d4924a108515b03
|
||||
export HSD_URL=hsd01.dev.woodburn.au
|
||||
export HSD_HTTP_HOST=hsd01.dev.woodburn.au
|
||||
export HSD_API_KEY=y5cSK42tgVCdt4E58jkHjI3nQ9GU32bC
|
||||
|
||||
. "$HOME/.atuin/bin/env"
|
||||
|
||||
0
.zsh_functions/_cargo
Normal file
0
.zsh_functions/_cargo
Normal file
3
.zshenv
3
.zshenv
@@ -3,3 +3,6 @@
|
||||
export PATH="$PATH:/home/nathan/.cyfrin/bin"
|
||||
|
||||
export PATH="$PATH:/home/nathan/.foundry/bin"
|
||||
export HSD_URL=hsd01.dev.woodburn.au
|
||||
export HSD_HTTP_HOST=hsd01.dev.woodburn.au
|
||||
export HSD_API_KEY=y5cSK42tgVCdt4E58jkHjI3nQ9GU32bC
|
||||
|
||||
239
.zshrc
239
.zshrc
@@ -1,192 +1,109 @@
|
||||
# If you come from bash you might have to change your $PATH. export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
# ~/.zshrc optimized for performance
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
|
||||
### 🚀 Performance Tweaks
|
||||
# Avoid compaudit delays unless root
|
||||
autoload -Uz compinit
|
||||
zstyle ':completion:*' use-cache on
|
||||
zstyle ':completion:*' cache-path ~/.zsh/cache
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
compinit -C -d ~/.zsh/cache/zcompdump
|
||||
else
|
||||
compinit -d ~/.zsh/cache/zcompdump
|
||||
fi
|
||||
|
||||
# TMP profiler
|
||||
# zmodload zsh/zprof
|
||||
|
||||
### 📦 Plugin & Framework Setup
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
# Set name of the theme to load --- if set to "random", it will
|
||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||
ZSH_THEME="robbyrussell"
|
||||
plugins=(nvm git sudo systemadmin)
|
||||
|
||||
# Set list of themes to pick from when loading at random
|
||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||
# a theme from this variable instead of looking in $ZSH/themes/
|
||||
# If set to an empty array, this variable will have no effect.
|
||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment one of the following lines to change the auto-update behavior
|
||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
||||
# zstyle ':omz:update' mode auto # update automatically without asking
|
||||
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# zstyle ':omz:update' frequency 13
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# You can also set it to another string to have that shown instead of the default red dots.
|
||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# You can set one of the optional three formats:
|
||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# or set a custom format using the strftime function format specifications,
|
||||
# see 'man strftime' for details.
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load?
|
||||
# Standard plugins can be found in $ZSH/plugins/
|
||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(git sudo systemadmin tldr)
|
||||
# Lazy-load nvm
|
||||
zstyle ':omz:plugins:nvm' lazy yes
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
# export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
# if [[ -n $SSH_CONNECTION ]]; then
|
||||
# export EDITOR='vim'
|
||||
# else
|
||||
# export EDITOR='mvim'
|
||||
# fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
### 🔧 Environment Config
|
||||
export EDITOR=nano
|
||||
export VISUAL=nano
|
||||
export ANDROID_HOME="$HOME/Android/Sdk"
|
||||
export LIBVIRT_DEFAULT_URI="qemu:///system"
|
||||
|
||||
# Set path at the start to ensure all commands can find their binaries
|
||||
export PATH="/usr/bin:$PATH"
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
|
||||
export PATH="$ANDROID_HOME/platform-tools:$PATH"
|
||||
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
|
||||
export PATH="$HOME/.pub-cache/bin:$PATH"
|
||||
export PATH="/opt/flutter/flutter/bin:$PATH"
|
||||
export PATH="$HOME/go/bin:$PATH"
|
||||
export PATH="$HOME/Downloads/go/bin:$PATH"
|
||||
export PATH="$HOME/Downloads/idea-IU-232.10072.27/bin:$PATH"
|
||||
export PATH="$HOME/exe/zig-linux-x86_64-0.13.0:$PATH"
|
||||
export PATH="$HOME/Downloads/javacc-javacc-7.0.13/javacc-javacc-7.0.13/scripts:$PATH"
|
||||
export PATH="$HOME/.atuin/bin:$PATH"
|
||||
|
||||
#eval "$(oh-my-posh init zsh --config ~/theme.omp.json)"
|
||||
### ⚙️ Tools Init
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
eval "$(oh-my-posh init zsh --config ~/theme.omp.json)"
|
||||
eval "$(atuin init zsh --disable-up-arrow)"
|
||||
bindkey '^[[1;5A' atuin-up-search
|
||||
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
. "$HOME/.atuin/bin/env"
|
||||
|
||||
export PYENV_ROOT="$HOME/.pyenv"
|
||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
||||
eval "$(pyenv init - zsh)"
|
||||
|
||||
export ANDROID_HOME=/home/$USER/Android/Sdk
|
||||
# Zellij auto-start
|
||||
ZELLIJ_AUTO_EXIT=true
|
||||
eval "$(zellij setup --generate-auto-start zsh)"
|
||||
|
||||
# Path stuff
|
||||
export PATH="/home/$USER/Downloads/go/bin:$PATH"
|
||||
export PATH="/home/$USER/Downloads/idea-IU-232.10072.27/bin:$PATH"
|
||||
export PATH="/home/$USER/.local/bin:$PATH"
|
||||
export PATH="$PATH:$ANDROID_HOME/platform-tools"
|
||||
export PATH="$PATH:/home/$USER/Android/Sdk/cmdline-tools/latest/bin/"
|
||||
export PATH="$PATH:$HOME/.pub-cache/bin"
|
||||
export PATH="$PATH:/opt/flutter/flutter/bin"
|
||||
export PATH="/home/$USER/.local/share/solana/install/active_release/bin:$PATH"
|
||||
export PATH="$PATH:/home/$USER/exe/zig-linux-x86_64-0.13.0"
|
||||
export PATH="$PATH:/home/$USER/go/bin"
|
||||
### 🐚 Shell Options
|
||||
setopt NO_SHARE_HISTORY
|
||||
|
||||
|
||||
export FZF_DEFAULT_OPTS='--preview "bat --color=always {}"'
|
||||
#export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
|
||||
|
||||
|
||||
# Alias stuff
|
||||
### 💻 Aliases
|
||||
alias reload='exec zsh'
|
||||
alias hcurl='curl --doh-url https://hnsdoh.com/dns-query'
|
||||
alias ls='eza --icons=auto'
|
||||
alias ll='eza --long --group --header --icons --classify'
|
||||
alias ani-cli='FZF_DEFAULT_OPTS= ani-cli'
|
||||
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
eval "$(oh-my-posh init zsh --config ~/theme.omp.json)"
|
||||
export HSD_API_KEY=30e7b7974d99c62b241a9daf3d4924a108515b03
|
||||
|
||||
alias z='zellij'
|
||||
alias za='zellij attach'
|
||||
tre() { command tre "$@" && source "/tmp/tre_aliases_$USER" 2>/dev/null; }
|
||||
alias tree=tre
|
||||
alias z='zellij'
|
||||
alias za='zellij attach'
|
||||
alias open='xdg-open'
|
||||
alias vim="nvim"
|
||||
alias vi="nvim"
|
||||
|
||||
alias opacity='/home/$USER/scripts/opacity.sh'
|
||||
alias op='/home/$USER/scripts/opacity.sh'
|
||||
alias blur='/home/$USER/scripts/blur.sh'
|
||||
alias music='/home/$USER/scripts/music.sh'
|
||||
alias venv='source /home/$USER/scripts/venv.sh'
|
||||
alias copy='/home/$USER/scripts/copy.sh'
|
||||
alias upload='/home/$USER/scripts/upload.sh'
|
||||
alias upload_latest_video='/home/$USER/scripts/upload_latest_video.py'
|
||||
alias ts='/home/$USER/scripts/ts.sh'
|
||||
alias hold='/home/$USER/scripts/hold.sh'
|
||||
alias message='/home/$USER/scripts/message.sh'
|
||||
alias dockerstart='/home/$USER/scripts/dockerstart.sh'
|
||||
alias dockerstop='/home/$USER/scripts/dockerstop.sh'
|
||||
alias domains='/home/$USER/scripts/domains.py'
|
||||
alias fix_touchpad='/home/$USER/scripts/fix_touchpad.sh'
|
||||
alias wallpaper='/home/$USER/scripts/wallpaper.py'
|
||||
alias reload='exec zsh'
|
||||
|
||||
alias open=xdg-open
|
||||
# ani-cli with preview
|
||||
alias ani-cli='FZF_DEFAULT_OPTS= ani-cli'
|
||||
|
||||
# Use gitkraken's cli tool
|
||||
unalias gk
|
||||
# Personal scripts
|
||||
for cmd in opacity op blur music copy upload upload_latest_video ts hold message dockerstart dockerstop domains wallpaper cert mount_ssd umount_ssd; do
|
||||
alias $cmd="$HOME/scripts/${cmd}.sh"
|
||||
done
|
||||
|
||||
alias venv="source $HOME/scripts/venv.sh"
|
||||
alias upload_latest_video='$HOME/scripts/upload_latest_video.py'
|
||||
alias domains='$HOME/scripts/domains.py'
|
||||
|
||||
# GitKraken CLI
|
||||
unalias gk 2>/dev/null
|
||||
|
||||
# unzip to folder
|
||||
unzip() {
|
||||
/usr/bin/unzip -d "${1%.*}" "$1"
|
||||
}
|
||||
|
||||
# FZF config
|
||||
export FZF_DEFAULT_OPTS='--preview "bat --color=always {}"'
|
||||
|
||||
|
||||
. "$HOME/.atuin/bin/env"
|
||||
|
||||
eval "$(atuin init zsh --disable-up-arrow)"
|
||||
# Bind CTRL+UP to atuin search
|
||||
bindkey '^[[1;5A' atuin-up-search
|
||||
|
||||
fpath+=${ZDOTDIR:-~}/.zsh_functions
|
||||
FPATH+=${ZDOTDIR:-~}/.zsh_functions
|
||||
export FPATH="/home/$USER/Git/eza/completions/zsh:$FPATH"
|
||||
|
||||
# Start zellij
|
||||
ZELLIJ_AUTO_EXIT=true
|
||||
eval "$(zellij setup --generate-auto-start zsh)"
|
||||
setopt NO_SHARE_HISTORY
|
||||
|
||||
export PATH="$PATH:/home/$USER/Downloads/javacc-javacc-7.0.13/javacc-javacc-7.0.13/scripts"
|
||||
# Completion paths
|
||||
fpath+=(${ZDOTDIR:-~}/.zsh_functions)
|
||||
FPATH+="$HOME/Git/eza/completions/zsh"
|
||||
export FPATH
|
||||
|
||||
Reference in New Issue
Block a user