shikai

Modern lightdm webkit2 theme

https://github.com/thewisker/shikai

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.3%) to scientific vocabulary

Keywords

archy greeter-theme lightdm lightdm-webkit2-greeter-theme linux nody-greeter sea-greeter theme web-greeter
Last synced: 6 months ago · JSON representation

Repository

Modern lightdm webkit2 theme

Basic Info
Statistics
  • Stars: 124
  • Watchers: 1
  • Forks: 8
  • Open Issues: 0
  • Releases: 16
Topics
archy greeter-theme lightdm lightdm-webkit2-greeter-theme linux nody-greeter sea-greeter theme web-greeter
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners Support Authors

README.md

Shikai

Modern lightdm webkit2 theme

Index

[Description][description] [Features][features] [Live Demo][livedemo] [Screenshots][screenshots] [Install][install] [Uninstall][uninstall] [Update][update] [Configuration][configuration] [Working Environment][working-environment] [Dependencies][dependencies] [Contributions][contributions] [Translations][translations] [Discussions][discussions] [Notes][notes] [Troubleshooting][troubleshooting] [Metrics][metrics] [License][license] [Code of Conduct][coc] [Author][author]

Description []

Sleek lightdm webkit2 theme that focuses on looks with performance in mind

Features []

The theme features:

  • Draggable windows
  • Multi-monitor support
  • Multi-language support
  • Custom time and date formats
  • Saving configurations as sub-themes
  • Background shuffle on background click
  • Sleek animations and on-hover effects
  • Graphical on-theme style configuration
  • Graphical on-theme behaviour configuration
  • Custom backgrounds configured via web-greeter.yml
  • Idle login window auto-hiding at x seconds of inactivity
  • Default user and session configured via web-greeter.yml
  • Background synchronization when using the multi-headed mode
  • Custom user images configured via a .face image on user home folders

Live Demo []

https://thewisker.github.io/Shikai

[!TIP] Demo password: password

[!NOTE] Demo wallpapers do not properly fit on some aspect ratios, thus looking out of place, but that can be fixed when the theme is installed by changing the wallpapers for ones that have the correct aspect ratio

Screenshots []

Main theme screenshot

Behaviour settings screenshot

Style settings screenshot

Themes settings screenshot

Second main screenshot

Install []

There are several ways to install the theme, whichever you use, do not forget to also follow the steps in General.

General

After having installed the theme, you will need to follow these steps to get it running:

  1. Select the greeter you are using in the /etc/lightdm/lightdm.conf file, which hosts LightDM's configuration:
    • Under [Seat:*], set greeter-session to the one you use: greeter-session=web-greeter
  2. Select the Shikai theme in the /etc/lightdm/web-greeter.yml file, which hosts the greeter's configuration:
    • Under branding, set theme to shikai: theme: shikai
  3. Optionally, configure the environment to your liking, as explained in configuration

[!NOTE] You can skip any step you have already completed previously

[!WARNING] When selecting a greeter-session have in mind that Shikai only supports WebGreeter, NodyGreeter and SeaGreeter as greeters

Arch Linux

You can install Shikai from the AUR repository:

[!TIP] For information on how to install an AUR package read this wiki

Script

Follow the steps:

  1. Download and unpack a release and cd into its root folder.
  2. Execute the following bash script from the repo root directory:
    • ./scripts/install.sh.

Manual

Follow the steps:

  1. Download and unpack a release, then, cd into its root folder.
  2. Locate, under the dist directory, the index.html and monitor.html files.
  3. In said files, search and replace the string window.__is_debug = true; with window.__is_debug = false;.
  4. Copy the contents of the dist directory to /usr/share/web-greeter/themes/shikai.

Uninstall []

The theme is uninstalled in different ways depending on how it was installed.
For a complete uninstall, one must also follow the steps in General.

General

After having uninstalled the theme you will, optionally, need to follow some steps to not lose functionality:

  • If keeping the Greeter, select another theme in the /etc/lightdm/web-greeter.yml file which hosts the greeter's configuration:
    • Under branding, set theme to the new theme: theme: which-theme
  • If removing the Greeter but keeping LightDM, select another greeter in the /etc/lightdm/lightdm.conf file which hosts LightDM's configuration:
    • Under [Seat:*], set greeter-session to the new greeter: greeter-session=which-greeter
  • If removing LightDM, make sure to set up a new way to login into the system.

Arch Linux

Simply uninstall the shikai-theme package.

Script & Manual

Simply remove the /usr/share/web-greeter/themes/shikai folder.

Update []

To update the theme simply install the new version overwriting the old version.

[!TIP] The theme localStorage can be deleted from the on-theme configuration

[!CAUTION] Failure to delete localStorage before updating to a version which introduces breaking changes will result in errors on theme load

Configuration []

On-Theme

The configuration button becomes avaiable by hovering over the top-left corner of the window.
The behaviour and style settings are saved locally only when the configuration panel gets closed.
The themes configuration gets saved on theme creation, deletion and activation.

[!NOTE] Make sure to delete this configuration when updating to a Shikai version that introduces breaking changes

Greeter

The configuration for the greeter resides in /etc/lightdm/web-greeter.yml

Shikai uses the following entries from the configuration:

  • Under branding:

| Key | Description | Recommended Value | Shikai-only | Type | |---------------------------|---------------------------------------|-----------------------------------------------------------------|-------------------|--------------| | backgroundimagesdir | directory where wallpapers are stored | /usr/share/web-greeter/themes/shikai/assets/media/wallpapers | | str | | logo_image | directory where logos are stored | /usr/share/web-greeter/themes/shikai/assets/media/logos | | str | | user_image | default image for users that lack one | /usr/share/web-greeter/themes/shikai/assets/media/profile.jpg | | str |

  • Under greeter:

| Key | Description | Recommended Value | Shikai-only | Type | |-------------------------|---------------------------------------------------------------------------|-------------------------|-------------------|--------------| | theme | greeter theme to use | shikai | | str | | icon_theme | cursor icon theme to use | | | str | | default_user | default user to select initially | | [X] | str | | default_session | default session to select initially | | [X] | str | | screensaver_timeout | blank the screen after this many seconds of inactivity | | | int | | detectthemeerrors | provide an option to load a fallback theme when theme errors are detected | True | | bool | | debug_mode | enable debug mode for the greeter as well as greeter themes | False | | bool | | secure_mode | don't allow themes to make remote http requests | True | | bool |

  • Under layouts:

List of preferred keyboard layouts to use.
Shikai only uses the first layout as, at the moment, it does not provide a way to switch layout on-theme.

[!TIP] Consider using ACLs for a more fine-grained control over permissions

[!WARNING] Paths and assets loaded by the theme must be accessible to the lightdm system user account with read and execute permissions

LightDM

LightDM can be configured to turn on the numlock by default:

  1. Install numlockx

- ***Other***:
  - **Install** it by *other means*

      ![GitHub Release](https://img.shields.io/github/v/release/rg3/numlockx?display_name=tag&style=for-the-badge&logo=github&label=numlockx)
  1. Once installed, edit /etc/lightdm/lightdm.conf
    • Under [Seat:*], set greeter-setup-script to: greeter-setup-script=/usr/bin/numlockx on

Working Environment []

When developing Shikai, one must have a proper working environment set up.
To initalize said environment, one must have installed npm and run npm install.

The repo comes with some scripts to facilitate the development process:

  • To package the development version run npm run dev or ./scripts/development.sh
  • To package the production version run npm run build or ./scripts/production.sh
  • To package the development version on source change run npm run watch or ./scripts/watch.sh
  • To package the development version on source change and serve said package locally run npm run server or ./scripts/server.sh

[!NOTE] Scripts must be run from the repo's root directory

[!WARNING] If you run npm update you are almost guaranteed to end up with package breakages, so just don't.
If you did, delete ./node_modules/ and replace both ./package.json and ./package-lock.json with the ones in the repo.

Dependencies []

Buildtime

The theme buildtime dependencies are listed in the ./package.json file.

Runtime

The theme depends on web-greeter, nody-greeter or sea-greeter and its respective dependencies, plus lightdm.

Contributions []

First and foremost, all contributions are welcome!
The steps involved when making a contribution are explained in the CONTRIBUTING.md file.
We look forward to your contributions!

  • The contributors list is located here.

Translations []

First and foremost, as with contributions, all translations are also welcome!
The steps involved when making a translation are explained in the CONTRIBUTING.md file.
More specific steps can be found in the CONTRIBUTING.md file in the /src/lang folder.
We look forward to your translations!

  • The translators list is located here.

Discussions []

The following spaces are provided to discuss: - Ideas for future improvements in here - Questions you want to ask in here - Screenshots you want to share in here

Notes []

  • Missing linux distro logo? Submit a pull request!
  • Missing language? Submit a pull request including it in ./src/lang! Further details here.
  • Have a really cool wallpaper to add to the live demo? Submit a pull request!
  • Undefined behaviour when adding non-browser-compliant images and non-image files to the wallpapers directory

Troubleshooting []

Profile image not loading

If you have added a .face image to you home folder and it does not load on-theme, it is probably due to a lack of permisions for the lightdm user on the .face file. Thus, ensure the image and its parent folder have read and execute permissions for the lightdm user, either by having them set for others or by using ACLs.

If this does not solve the issue, you can try the following steps:

  1. Copy the .face image to /var/lib/AccountsService/icons/ renaming it to the desired user's name.
  2. Create the configuration file /var/lib/AccountsService/users/<username> if it does not exist.
  3. Add the line Icon=/var/lib/AccountsService/icons/<username> to the configuration file.

As a last resort, if none of these solutions work you can set a default user image as explained here under the Greeter section.

[!NOTE] Replace <username> with the desired user's username

Incomplete loading

On the rare case that the demo or the theme itself only load the backgrounds or do not load the settings,
it is most probably due to a recent update that contains changes to the settings JSON structure.

This can be fixed by either: - Looking at the errors in the developer console and manually adding the missing keys and values - Deleting the page's localStorage

Metrics []

License []

Code of Conduct []

This project follows the Contributor Covenant Code of Conduct.

Author []

TheWisker

Owner

  • Name: Wisker
  • Login: TheWisker
  • Kind: user

I don't know why it works

GitHub Events

Total
  • Create event: 2
  • Release event: 2
  • Issues event: 6
  • Watch event: 29
  • Delete event: 1
  • Issue comment event: 13
  • Push event: 300
  • Pull request review event: 1
  • Fork event: 3
Last Year
  • Create event: 2
  • Release event: 2
  • Issues event: 6
  • Watch event: 29
  • Delete event: 1
  • Issue comment event: 13
  • Push event: 300
  • Pull request review event: 1
  • Fork event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 816
  • Total Committers: 5
  • Avg Commits per committer: 163.2
  • Development Distribution Score (DDS): 0.021
Past Year
  • Commits: 367
  • Committers: 1
  • Avg Commits per committer: 367.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
TheWisker T****r@p****m 799
TheWisker s****7@g****m 14
Tyler Schneider t****i@g****m 1
Faisal Almalki 7****2 1
Tiago M. Neves t****s@p****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 14
  • Total pull requests: 4
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 11
  • Total pull request authors: 4
  • Average comments per issue: 3.86
  • Average comments per pull request: 2.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 0
  • Average time to close issues: 29 days
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 2.25
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • TalinTheDev (2)
  • lgdsgd2000 (1)
  • Hibyehello (1)
  • skarpinis (1)
  • car8675309 (1)
  • stevenxxiu (1)
  • TonyN678 (1)
  • 4Gettt25 (1)
  • Faisal-beep22 (1)
  • DillanCMills (1)
  • cidne (1)
Pull Request Authors
  • tiagomneves-pt (2)
  • TalinTheDev (1)
  • Faisal-beep22 (1)
  • teschnei (1)
Top Labels
Issue Labels
bug (6) enhancement (5) invalid (1) wontfix (1)
Pull Request Labels
bug (3) enhancement (1)

Dependencies

package-lock.json npm
  • 506 dependencies
package.json npm
  • @babel/plugin-proposal-class-properties ^7.18.6 development
  • @babel/plugin-syntax-dynamic-import ^7.8.3 development
  • @babel/plugin-transform-react-constant-elements ^7.21.3 development
  • @babel/plugin-transform-react-inline-elements ^7.21.0 development
  • @babel/plugin-transform-runtime ^7.21.0 development
  • @babel/preset-env ^7.20.2 development
  • @babel/preset-react ^7.18.6 development
  • atob >=2.1.0 development
  • autoprefixer ^10.4.14 development
  • babel-loader ^9.1.2 development
  • babel-plugin-transform-react-remove-prop-types ^0.4.24 development
  • copy-webpack-plugin ^11.0.0 development
  • css-loader ^6.7.3 development
  • css-minimizer-webpack-plugin ^4.2.2 development
  • html-webpack-plugin ^5.5.0 development
  • loader-utils >=1.4.2 development
  • mini-css-extract-plugin ^2.7.5 development
  • postcss ^8.4.21 development
  • postcss-loader ^7.2.4 development
  • sass ^1.60.0 development
  • sass-loader ^13.2.1 development
  • style-loader ^3.3.2 development
  • svg-react-loader ^0.4.0 development
  • webpack-cli ^5.0.1 development
  • cxs ^6.2.0
  • react ^18.2.0
  • react-color ^2.19.3
  • react-dom ^18.2.0
  • react-draggable ^4.4.5
  • react-dropdown ^1.11.0
  • react-redux ^8.0.5
  • redux ^4.2.1
.github/workflows/aur_update.yml actions
  • actions/checkout v3 composite
.github/workflows/aur_update_git.yml actions
  • actions/checkout v3 composite
.github/workflows/deploy_pages.yml actions
  • actions/checkout v3 composite
  • actions/configure-pages v2 composite
  • actions/deploy-pages v1 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/github_metrics.yml actions
  • TheWisker/GitHubMetrics master composite
  • actions/checkout v3 composite