9 Commits
0.3 ... perso

Author SHA1 Message Date
6110949622 Update js/main.js 2025-10-27 15:28:16 +01:00
91890c9091 Update js/main.js 2025-10-27 15:26:29 +01:00
57a98a1cbd Update config.json
Customization
2025-10-27 15:21:18 +01:00
Abdelrhman Nile
97a194d962 Update README.md 2021-11-12 06:50:17 +00:00
AbdelrhmanNile
53d8f1f6b3 fixing some colors 2021-11-12 08:45:23 +02:00
Abdelrhman Nile
246a28e493 Update README.md 2021-11-10 18:37:22 +00:00
AbdelrhmanNile
6ca2898a50 README 2021-11-10 20:35:24 +02:00
AbdelrhmanNile
05df302ecd README 2021-11-10 20:29:51 +02:00
AbdelrhmanNile
26320c5909 changing color palette to onedark, replacing bing with brave search engine, changing timezone and weather location 2021-11-10 20:18:01 +02:00
5 changed files with 81 additions and 89 deletions

View File

@@ -1,19 +1,7 @@
<div align="center"> my fork of [this](https://github.com/deepjyoti30/startpage/) start page
<h1>Minimal Startpage</h1>
<h4>Just another minimal startpage for browsers.</h4>
</div>
<img src=".github/startpage.gif"> i just changed the color palette to onedark,
you will find the documentations and everything on the original repo
<div align="center"> # SCREENSHOTS
<br> <img src = "https://i.imgur.com/s5T9dKK.png">
<img src="https://img.shields.io/badge/Maintained%3F-Yes-blueviolet?style=for-the-badge"> <img src = "https://i.imgur.com/wJagxIv.png">
<a href="LICENSE.md"><img src="https://img.shields.io/badge/License-MIT-pink.svg?style=for-the-badge"></a> <a href="http://makeapullrequest.com"><img src="https://img.shields.io/badge/PRs-welcome-lightblue.svg?style=for-the-badge"></a> <img src="https://img.shields.io/badge/supports-chrome-lightgreen.svg?style=for-the-badge"> <img src="https://img.shields.io/badge/supports-firefox-orange.svg?style=for-the-badge"><a href="https://www.paypal.me/deepjyoti30" target="_blank"><img alt="undefined" src="https://img.shields.io/badge/paypal-deepjyoti30-blue?style=for-the-badge&logo=paypal"></a>
<a href="https://ko-fi.com/deepjyoti30" target="_blank"><img alt="undefined" src="https://img.shields.io/badge/KoFi-deepjyoti30-red?style=for-the-badge&logo=ko-fi"></a>
<br>
<h3>
<a href="https://github.com/deepjyoti30/startpage/wiki/Installation">Installation</a> | <a href="https://github.com/deepjyoti30/startpage/wiki/Configuration">Configuration</a> | <a href="https://github.com/deepjyoti30/startpage/wiki">Wiki</a>
</h3>
</div>

View File

@@ -1,63 +1,66 @@
{ {
"squares": [ "squares": [
{ "name": "media", { "name": "media",
"color": "red", "color": "#61afef",
"links": [ "links": [
{ "name": "Spotify", "url": "https://open.spotify.com/" }, { "name": "Youtube", "url": "https://youtube.com" },
{ "name": "YoutubeMusic", "url": "https://music.youtube.com/" }, { "name": "Jellyfin", "url": "https://stream.kawa.zip/" },
{ "name": "Netflix", "url": "https://netflix.com" }, { "name": "KawaMusic", "url": "https://music.kawawete.xyz/" },
{ "name": "Youtube", "url": "https://youtube.com" } { "name": "Tidal", "url": "https://tidal.com" },
{ "name": "Tidal", "url": "https://zic.kawa.zip" }
] ]
}, },
{ "name": "work", { "name": "homelab",
"color": "#26A69A", "color": "#e06c75",
"links": [ "links": [
{ "name": "Github", "url": "https://github.com" }, { "name": "Front 1 Portainer", "url": "https://port.team4kw.fr" },
{ "name": "Heroku", "url": "http://heroku.com/" }, { "name": "Front 2 Portainer", "url": "https://port.azuze.fr/" },
{ "name": "localhost", "url": "http://localhost:8000/" } { "name": "IIRIAM Dockge", "url": "https://yacht.iiriam.fr/" }
] ]
}, },
{ "name": "social", { "name": "social",
"color": "#e5c07b",
"links": [ "links": [
{ "name": "Reddit", "url": "https://reddit.com" }, { "name": "Reddit", "url": "https://reddit.com" },
{ "name": "Unixporn Love", "url": "https://deepjyoti30.github.io/unixporn-love/" }, { "name": "9GAG", "url": "https://9gag.com" },
{ "name": "r/unixporn", "url": "https://www.reddit.com/r/unixporn/" }, { "name": "Twitter", "url": "https://x.com/" },
{ "name": "r/mk", "url": "https://www.reddit.com/r/MechanicalKeyboards/" } { "name": "Instagram", "url": "https://instagram.com/" }
] ]
}, },
{ {
"name": "Others", "name": "tools",
"color": "#98c379",
"links": [ "links": [
{"name": "Material Colors", "url": "http://materialuicolors.co/"}, {"name": "PDF", "url": "https://pdf.larrache.fr/"},
{"name": "Gmail", "url": "http://gmail.com/"}, {"name": "YT DL", "url": "https://ytdl.kawa.zip/"},
{"name": "neo4j Local", "url": "http://localhost:7474/"}, {"name": "OmniTools", "url": "https://tools.larrache.fr/"},
{"name": "rarbg", "url": "http://rarbg.to"} {"name": "Penpot", "url": "https://id.larrache.fr"}
] ]
} }
], ],
"searchEngine":"DuckDuckGo", "searchEngine":"FindShit",
"user": "Deepjyoti", "user": "Kawa",
"disableMessage": false, "disableMessage": false,
"disableDate": false, "disableDate": false,
"disableSearchBar": false, "disableSearchBar": false,
"disable24Hour": false, "disable24Hour": false,
"disableWeather": true, "disableWeather": false,
"timeZone": "America/Los_Angeles", "timeZone": "Europe/Paris",
"weatherConf": { "weatherConf": {
"location": "Pune India", "location": "Melun",
"unit": "cel" "unit": "cel"
}, },
"settingsIcon": false, "settingsIcon": false,
"style": { "style": {
"backgroundColor": "#212121", "backgroundColor": "#282c34",
"messageColor": "#fff", "messageColor": "#fff",
"dateColor": "#d9d9d9", "dateColor": "#c8ccd4",
"lineColor": "#fff", "lineColor": "#fff",
"weatherColor": "#d9d9d9", "weatherColor": "#c8ccd4",
"searchColor": "#fff", "searchColor": "#c8ccd4",
"searchBackgroundColor": "#2e2e2e", "searchBackgroundColor": "#1e222a",
"squareColor": "#9e9e9e", "squareColor": "#abb2bf",
"squareBackgroundColor": "#2e2e2e", "squareBackgroundColor": "#1e222a",
"autocompleteHighlightBackgroundColor": "#3B3B3B" "autocompleteHighlightBackgroundColor": "#3e4451"
} }
} }

View File

@@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>startpage</title> <title>New Tab</title>
<!--Json Editor--> <!--Json Editor-->
<link rel="stylesheet" href="css/jsoneditor.min.css" type="text/css"> <link rel="stylesheet" href="css/jsoneditor.min.css" type="text/css">
<!--Custom CSS--> <!--Custom CSS-->

View File

@@ -17,7 +17,7 @@ timeZ = undefined
otherContentId = "other-content" otherContentId = "other-content"
userName = "" userName = ""
disable24Hour = false; disable24Hour = false;
appId = "fd2c04ed7f9802656bd2cc23bddc7ad9" appId = "d319d5bd85895258efbd0bffc9e9a894"
apiUrl = "http://api.openweathermap.org/data/2.5/weather" apiUrl = "http://api.openweathermap.org/data/2.5/weather"
bgClassContainer = [ bgClassContainer = [
"media", "media",
@@ -32,8 +32,9 @@ bgClassContainer = [
] ]
searchEngines = { searchEngines = {
"Google": "https://www.google.com/search?q=", "Google": "https://www.google.com/search?q=",
"FindShit": "https://findsh.it/search?q=",
"DuckDuckGo": "https://duckduckgo.com/?q=", "DuckDuckGo": "https://duckduckgo.com/?q=",
"Bing": "https://www.bing.com/search?q=", "Brave": "https://search.brave.com/search?q=",
"Yahoo": "https://search.yahoo.com/search?p=", "Yahoo": "https://search.yahoo.com/search?p=",
"Ecosia": "https://www.ecosia.org/search?q=" "Ecosia": "https://www.ecosia.org/search?q="
} }
@@ -46,7 +47,7 @@ validQuickLinks = {}
function initBody() { function initBody() {
/** /**
* Function called when the body is loaded. * Function called when the body is loaded.
* *
* Do everything like adding an event listener to * Do everything like adding an event listener to
* other things. * other things.
*/ */
@@ -71,7 +72,7 @@ function initSearchBar(jsonData) {
searchEngine = "Google" searchEngine = "Google"
} }
searchUrl = this.searchEngines[searchEngine] searchUrl = this.searchEngines[searchEngine]
document.getElementById(searchBarId).placeholder = `Search something on ${searchEngine}` document.getElementById(searchBarId).placeholder = `${searchEngine} Search`
document.getElementById(searchBarId).addEventListener("keypress", (event) => { document.getElementById(searchBarId).addEventListener("keypress", (event) => {
if (event.key != 'Enter') return if (event.key != 'Enter') return
@@ -96,7 +97,7 @@ function initSearchBar(jsonData) {
function buildMsg() { function buildMsg() {
/** /**
* Build a nice message for the user. * Build a nice message for the user.
* *
* Following is how the message would be decided. * Following is how the message would be decided.
* 0 - 5:59 : It's too late, take some sleep * 0 - 5:59 : It's too late, take some sleep
* 6 - 8:59 : You're up early * 6 - 8:59 : You're up early
@@ -111,17 +112,17 @@ function buildMsg() {
currentTime = currentHour + (0.01 * currentMinute) currentTime = currentHour + (0.01 * currentMinute)
if (inRange(currentTime, 0, 5.59)) if (inRange(currentTime, 0, 5.59))
return "It's too late, take some sleep" return "Rendort toi..."
if (inRange(currentTime, 6, 8.59)) if (inRange(currentTime, 6, 8.30))
return "You're up early" return "Trop tot pour bosser"
if (inRange(currentTime, 9, 11.59)) if (inRange(currentTime, 8.31, 11.59))
return "Have a good day ahead" return "Je sens que ca va etre une bonne journée"
if (inRange(currentTime, 12, 16.59)) if (inRange(currentTime, 12, 16.59))
return "Good Afternoon" return "Bon aprem"
if (inRange(currentTime, 17, 19.59)) if (inRange(currentTime, 17, 19.59))
return "Good Evening" return "Bonne soirée"
if (inRange(currentTime, 20, 24)) if (inRange(currentTime, 20, 24))
return "It's time to wrap up for the day" return "Allez hop, on remballe"
else else
return "" return ""
} }
@@ -129,14 +130,14 @@ function buildMsg() {
function handleMessage(userName) { function handleMessage(userName) {
/** /**
* Handle the creation of the message * Handle the creation of the message
* *
* Build the message based on the time of the day. * Build the message based on the time of the day.
* If the message is null then add just the username * If the message is null then add just the username
* Else, add the username before the message. * Else, add the username before the message.
*/ */
var builtMsg = buildMsg() var builtMsg = buildMsg()
builtMsg == "" ? builtMsg == "" ?
builtMsg = `Hello ${userName}` : builtMsg = `Hey ${userName}, ${builtMsg}!` builtMsg = `Salut ${userName}` : builtMsg = `Hey ${userName}, ${builtMsg}!`
return builtMsg; return builtMsg;
} }
@@ -357,10 +358,10 @@ function createSqr(sqrData, index) {
function getTitle(titleContent, linkHref=null) { function getTitle(titleContent, linkHref=null) {
/** /**
* Create the title for the sqr card. * Create the title for the sqr card.
* *
* The card will be optionally clicable and will open * The card will be optionally clicable and will open
* a new link. * a new link.
* *
* If the link is not passed in the config then the title * If the link is not passed in the config then the title
* will not be clickable. * will not be clickable.
*/ */
@@ -413,7 +414,7 @@ function inRange(number, min, max) {
function isColorValid(color) { function isColorValid(color) {
/** /**
* Check if the passed color is valid. * Check if the passed color is valid.
* *
* Currently supports only css color names * Currently supports only css color names
* or hex colors having 3 or 6 characters. * or hex colors having 3 or 6 characters.
*/ */
@@ -430,12 +431,12 @@ function createClass(color) {
/** /**
* Create a new class in a style and add it to * Create a new class in a style and add it to
* the head. * the head.
* *
* I did check other alternatives since adding something like * I did check other alternatives since adding something like
* this in the innerHTML is not a preferred way to go, * this in the innerHTML is not a preferred way to go,
* especially since I'm building this as an extension, * especially since I'm building this as an extension,
* however, there's no other way. * however, there's no other way.
* *
* Since I also want to add hover effects, there seriously * Since I also want to add hover effects, there seriously
* is no other way to do that without adding a style or using * is no other way to do that without adding a style or using
* a library (cannot/don't want to do that because this is an extension). * a library (cannot/don't want to do that because this is an extension).
@@ -452,7 +453,7 @@ function createClass(color) {
function createPlaceholderStyleClass(color) { function createPlaceholderStyleClass(color) {
/** /**
* Create a new class with for placeholder styling. * Create a new class with for placeholder styling.
* *
* This is pretty much a continuation of what has done preivously * This is pretty much a continuation of what has done preivously
* in the createClass function. * in the createClass function.
*/ */
@@ -463,11 +464,11 @@ function createPlaceholderStyleClass(color) {
color: ${color} !important; color: ${color} !important;
opacity: 1; /* Firefox */ opacity: 1; /* Firefox */
} }
:-ms-input-placeholder { /* Internet Explorer 10-11 */ :-ms-input-placeholder { /* Internet Explorer 10-11 */
color: ${color} !important; color: ${color} !important;
} }
::-ms-input-placeholder { /* Microsoft Edge */color: ${color} !important;}`; ::-ms-input-placeholder { /* Microsoft Edge */color: ${color} !important;}`;
document.getElementsByTagName('head')[0].appendChild(style); document.getElementsByTagName('head')[0].appendChild(style);
@@ -498,7 +499,7 @@ function addAutocompleteStyleClass(color) {
function extractQuickLinks(passedSqrs, style) { function extractQuickLinks(passedSqrs, style) {
/** /**
* Extract the quicklinks passed in the config * Extract the quicklinks passed in the config
* *
* Cache the quicklinks passed by the user in the config JSON * Cache the quicklinks passed by the user in the config JSON
* so that they can be used as a shortcut called from the * so that they can be used as a shortcut called from the
* search bar. * search bar.
@@ -526,10 +527,10 @@ function listenForSettings() {
function enableCog() { function enableCog() {
/** /**
* Enable the settings cog. * Enable the settings cog.
* *
* It will be disabled by default, however, if the user * It will be disabled by default, however, if the user
* wishes to enable it through the config, it will be shown. * wishes to enable it through the config, it will be shown.
* *
* Once shown, we need to add some event listeners to it as * Once shown, we need to add some event listeners to it as
* well so it works the right way. * well so it works the right way.
*/ */
@@ -548,4 +549,4 @@ function enableCog() {
hideSettings(editor); hideSettings(editor);
} }
} }
} }

View File

@@ -1,12 +1,12 @@
$background: #212121; $background: #282c34;
$foreground: #fff; $foreground: #abb2bf;
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
$media: #4DD0E1; $media: #61afef;
$work: #F06292; $work: #e06c75;
$social: #FFF176; $social: #e5c07b;
$others: #81C784; $others: #98c379;
$funky: #4DB6AC; $funky: #56b6c2;
$purple: #9575CD; $purple: #c678dd;
$upvoty: #FF8A65; $upvoty: #FF8A65;
$indigo: #7986CB; $indigo: #7986CB;
$foxxy: #A1887F; $foxxy: #A1887F;
@@ -188,7 +188,7 @@ body {
h4, a:hover { h4, a:hover {
color: $social; color: $social;
} }
} }
.others { .others {
@@ -267,10 +267,10 @@ body {
right: 25px; right: 25px;
transition: 2s ease-in; transition: 2s ease-in;
display: none; display: none;
&:hover .cog { &:hover .cog {
fill: white; fill: white;
stroke: white; stroke: white;
transition: 2s ease-in; transition: 2s ease-in;
} }
} }