Simple Wayland HotKey Daemon

Related tags

Miscellaneousswhkd
Overview

swhkd

Simple Wayland HotKey Daemon

This project is still very new and I'm making new decisions everyday as to where I should drive this project.

I'm using libevdev which technically makes swhkd display protocol indepdent, but we'll need to put that to the test before claiming anything.

Currently I have only been able to achieve the grabbing of input evdev, I don't know how I will process chains of keybinds, but we'll get to that soon.

Python:

Adressing the elephant in the room, python. Python is good enough for the prototype stage of the project, once I have a clear idea and a working prototype, I will port the project to go or zig.

Comments
  • swhkd doesn't start: Os Error, Function not implemented

    swhkd doesn't start: Os Error, Function not implemented

    Version Information:

    • Distribution Information ( run uname -a ): Linux FrameWork 5.16.11-arch1-1 #1 SMP PREEMPT Thu, 24 Feb 2022 02:18:20 +0000 x86_64 GNU/Linux
    • swhkd version ( swhkd -V ) swhkd 1.0.0

    Describe the bug: I installed from the AUR (swhkd-git), when I try to run start the daemon I get the following error msg:

    $ swhks &
    $ pkexec swhkd -c ~/.config/swhkd/swhkdrc
    [2022-03-02T00:49:56Z WARN  swhkd] Running swhkd as root!
    Error: Os { code: 38, kind: Unsupported, message: "Function not implemented" }
    

    Expected behavior: The daemon to start succefully.

    Actual behavior: Daemon doesn't start and crashes.

    To Reproduce:

    $ paru -S swhkd
    $ swhks &
    $ pkexec swhkd -c ~/.config/swhkd/swhkdrc
    

    I also tried installing straight from the github:

    $ git clone https://github.com/waycrate/swhkd
    $ cd swhkd
    $ git rev-parse HEAD
    3986dd01a31c168e91a3de038911745293dfa574
    $ make setup
    $ make glibc
    $ sudo make install
    

    But the same crash happens.

    Bug 
    opened by loiccoyle 18
  • Re-emit ignored events from grabbed devices to uinput devices

    Re-emit ignored events from grabbed devices to uinput devices

    Ignored events (i.e. events other than key presses for now) are re-emitted to the uinput devices. This allows grabbing mouses and other pointer devices while still allowing the cursors to work.

    In some cases, events are not re-emitted at all when the uinput device handles keys, relative axes and switches. By sending switch events to a separate uinput device just for switches and another one for keys and relative axes, we can re-emit keys, pointer events, and switches events properly.

    Enhancement 
    opened by ajanon 16
  • `pkexec swhkd` turn off the wifi on start

    `pkexec swhkd` turn off the wifi on start

    Version Information:

    • Distribution Information ( run uname -a )

    Debian 5.18.16

    • swhkd version ( swhkd -V )

    swhkd 1.2.1

    Describe the bug: pkexec swhkd turn off the wifi on start. I have to enable it manually after.

    Note

    • It turns off the wifi (not disconnect)
    • Reload config is fine.

    Expected behavior: Don't turn off wifi

    Actual behavior:

    ❯ pkexec swhkd -d -c ~/.config/swhkd/swhkdrc
    [2022-11-28T13:34:22Z TRACE swhkd] Logger initialized.
    [2022-11-28T13:34:22Z TRACE swhkd] Invoking UID: 85819
    [2022-11-28T13:34:22Z TRACE swhkd] Setting process umask.
    [2022-11-28T13:34:22Z ERROR swhkd] XDG_RUNTIME_DIR has not been set.
    [2022-11-28T13:34:22Z TRACE swhkd] Reading /run/swhkd/swhkd_85819.pid file and checking for running instances.
    [2022-11-28T13:34:22Z DEBUG swhkd] Previous PID: 1559337
    [2022-11-28T13:34:23Z WARN  swhkd] Running swhkd as root!
    [2022-11-28T13:34:23Z DEBUG swhkd::perms] Setting initgroups...
    [2022-11-28T13:34:23Z DEBUG swhkd::perms] Setting EGID...
    [2022-11-28T13:34:23Z DEBUG swhkd::perms] Setting EUID...
    [2022-11-28T13:34:23Z DEBUG swhkd] Using config file path: "/home/timgreen/.config/swhkd/swhkdrc"
    [2022-11-28T13:34:23Z DEBUG swhkd::perms] Setting EGID...
    [2022-11-28T13:34:23Z DEBUG swhkd::perms] Setting EUID...
    [2022-11-28T13:34:23Z DEBUG swhkd::perms] Setting initgroups...
    [2022-11-28T13:34:23Z TRACE swhkd] Attempting to find all keyboard file descriptors.
    [2022-11-28T13:34:23Z TRACE swhkd] Other: sof-hda-dsp HDMI/DP,pcm=5
    [2022-11-28T13:34:23Z TRACE swhkd] Other: sof-hda-dsp HDMI/DP,pcm=4
    [2022-11-28T13:34:23Z TRACE swhkd] Other: sof-hda-dsp HDMI/DP,pcm=3
    [2022-11-28T13:34:23Z TRACE swhkd] Other: sof-hda-dsp Headphone
    [2022-11-28T13:34:23Z TRACE swhkd] Other: sof-hda-dsp Mic
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Integrated RGB Camera: Integrat
    [2022-11-28T13:34:23Z TRACE swhkd] Other: ELAN067A:00 04F3:3197 Touchpad
    [2022-11-28T13:34:23Z TRACE swhkd] Other: ELAN067A:00 04F3:3197 Mouse
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Integrated RGB Camera: Integrat
    [2022-11-28T13:34:23Z TRACE swhkd] Other: ThinkPad Extra Buttons
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Wacom Pen and multitouch sensor Finger
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Wacom Pen and multitouch sensor Pen
    [2022-11-28T13:34:23Z TRACE swhkd] Other: TPPS/2 Elan TrackPoint
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Video Bus
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Power Button
    [2022-11-28T13:34:23Z TRACE swhkd] Other: Lid Switch
    [2022-11-28T13:34:24Z TRACE swhkd] Other: PC Speaker
    [2022-11-28T13:34:24Z TRACE swhkd] Other: Sleep Button
    [2022-11-28T13:34:24Z DEBUG swhkd] Keyboard: AT Translated Set 2 keyboard
    [2022-11-28T13:34:24Z DEBUG swhkd] 1 Keyboard device(s) detected.
    [2022-11-28T13:34:24Z ERROR swhkd] XDG_RUNTIME_DIR has not been set.
    [2022-11-28T13:34:37Z DEBUG swhkd] state_modifiers: {
    

    To Reproduce: Just run pkexec swhkd

    Additional information: Anything else you'd like us to know ?

    Happy to grab other logs to happy debugging.

    Bug 
    opened by timgreen 14
  • Add ability to load multiple config

    Add ability to load multiple config

    Example:

    # /home/waycrate/.config/swhkd/swhkdrc
    super + enter
        alarcritty
    super + shift + w
        firefox
    
    # /home/waycrate/.dwm/swhkdrc
    use /home/waycrate/.config/swhkd/swhkdrc
    super + q
        dwmc quit
    

    As you can see in the code, we can anyone of use import include source as the token

    Todo:

    • [x] error checks for each config file imported and report error with the file path
    • [ ] do some clean up
    • [ ] write test functions for testing a config file (read the file and compare the result)
    • [ ] support relative path and ~/ in path
    Enhancement 
    opened by EdenQwQ 13
  • cargo package / crates io?

    cargo package / crates io?

    Describe the bug:

    Can see here a cargo.toml file in the root folder of this repo / the main project repo. However cannot seem to just cargo install ... the software like other rust packages. So is this something planned for the future?

    Have tried the following on the cmdline:

    ⏚ θ127° [id:~/.bin] $ cargo install Swhkd
        Updating crates.io index
    error: could not find `Swhkd` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ cargo install swhkd
        Updating crates.io index
    error: could not find `swhkd` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ cargo install swhkd-git
        Updating crates.io index
    error: could not find `swhkd-git` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ cargo install swhkd-musl-git
        Updating crates.io index
    error: could not find `swhkd-musl-git` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ cargo install swhkd-bin
        Updating crates.io index
    error: could not find `swhkd-bin` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ cargo install swhkd-musl-bin
        Updating crates.io index
    error: could not find `swhkd-musl-bin` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ cargo install swhks
        Updating crates.io index
    error: could not find `swhks` in registry `crates-io` with version `*`
    ⏚ θ127° [id:~/.bin] 101 $ 
    

    Additional information: Anything else you'd like us to know ?

    Bug 
    opened by dreamcat4 11
  • modal feature missing?

    modal feature missing?

    Version Information:

    • linux 5.16.11-arch1-2
    • swhkd 1.1.0

    Describe the bug: sxhkd has the modal feature, e.g. (example from https://github.com/baskerville/sxhkd/blob/master/README.md )

    super + o ; {e,w,m}
    	{gvim,firefox,thunderbird}
    

    swhkd doesn't seem to recognize the semicolor ;. Is this implemented yet?

    Expected behavior: Drop in replacement for sxhkd.

    Actual behavior: semicolon ; causes error.

    To Reproduce: same as above

    super + o ; {e,w,m}
    	{gvim,firefox,thunderbird}
    

    Additional information: Great project! Thank you!

    Enhancement Good first issue 
    opened by tsankuanglee 11
  • fix: patch CVE-2022-27814

    fix: patch CVE-2022-27814

    From what I've seen, std::fs::File::open() doesn't take into account the UID when trying to detect files. To prevent detection of root-owned files in root directories, I've resorted to using the system /bin/cat command for now to open files. It's hacky, but it seems to work.

    opened by angelofallars 8
  • Chords do not work

    Chords do not work

    Version Information:

    • Distribution Information ( run uname -a ) Linux xircon-w6567sz 5.16.16-zen1-1-zen #1 ZEN SMP PREEMPT Mon, 21 Mar 2022 22:59:42 +0000 x86_64 GNU/Linux
    • swhkd version ( swhkd -V ) swhkd 1.1.7

    Describe the bug: Chords not working

    super + n:  {n,p,d,x}
        {variety -n, variety -p, variety -t, variety --pause && notify-send Paused} 
    
    [2022-03-28T13:43:13Z ERROR swhkd] Config Error: Error parsing config file "/etc/swhkd/swhkdrc". Unknown symbol at line 11.
    

    Expected behavior: Should work as it does in sxhkd.

    Actual behavior: See error swhkd does not load.

    Bug 
    opened by xircon 7
  • Add changelog

    Add changelog

    We're currently missing a changelog file. Having a changelog file directly inside the repository would help track changes. This would also make it easier to create new releases as we could just copy and paste what is already available in the changelog file.

    I would suggest using something like Keep a Changelog for this. We can add this file with the latest changes only for now, and try to add previous releases to this file gradually later on.

    We could also enforce updating the changelog on PRs to ensure we do have everything in there.

    This issue is mainly to discuss this and to think about possible solutions.

    Documentation 
    opened by ajanon 6
  • Grab keys so they don't go to a focused application

    Grab keys so they don't go to a focused application

    what i meant is that with sxhkd the keybindings conflict and sxhkd is given the preference (i think that's how you spell it) so if i press alt + a when i'm focused on pcmanfm the keybinding will work on sxhkd but not pcmanfm

    Discord message

    Somehow we should provide an option to swallow keys so that they don't go to a focused application / the tty.

    Enhancement 
    opened by UnsignedArduino 6
  • [fix] raise swhkd privileges right after reading config

    [fix] raise swhkd privileges right after reading config

    As a fix for CVE-2022-27814, root privileges are dropped to the calling user when (re)loading the config file. Privileges were sometimes dropped but never raised again, which caused crashes when sending SIGHUP to swhkd multiple times in a row.

    This now always raises privileges after successfully reading the config file. Fixes #155.

    Bug 
    opened by ajanon 5
  • Release milestones

    Release milestones

    To help plan features and work on long-term goals for the project, we could use GitHub milestones.

    This would be particularly helpful for deprecation or for big features that could then be split into multiple smaller issues to distribute work more easily.

    For now, we could create a 1.3.0 milestone and add some features we would like to implement. Fixes could just be added as needed and as implemented.

    This would help in bringing features to stable releases in a timely manner (see #194).

    Enhancement 
    opened by ajanon 0
  • Stable release process

    Stable release process

    There is currently no formal process for releasing a stable version of swhkd.

    For 1.2.2, I created a separate branch, split from a specific older commit, on which I updated the Cargo.toml and Cargo.lock files. As the 1.2.2 version is a patch release (semver), this made sense to not include larger changes, such as new features.

    This way of doing releases could be extended to all new swhkd releases.

    Process proposal:

    1. Branch off from a commit -- either from the main branch, or from an already existing release branch
    2. (Optional) Cherry-pick commits from other branches, or develop fixes/features as needed
    3. Update changelogs in the main branch and in the new branch
    4. Update the Cargo.toml and Cargo.lock files in the new branch
    5. Make sure tests pass
    6. Tag the Cargo update commit with the release version
    7. Create a release on GitHub

    Ideally, 2, 3 and 4 would be bundled in a PR, which would ensure 5 gets verified.

    Pros:

    • Easy to cherry-pick fixes, security patches, and other updates onto the stable release branches
    • Less version bumps commits on the main branch
    • Clear history showing where releases diverge from the main branch
    • Probably simpler to package, which may increase adoption (especially for non-rolling distros such as Debian, Ubuntu, Suse, etc)

    Cons:

    • This implicitly assumes that we support older releases, which may increase maintenance in the long run
      • This would in turn means we need to discuss how long we should support these older releases
      • And also, what would "support" actually mean for us?
    • (too) many branches for each stable release, which will clutter the GitHub UI (personally, I think it is fine development-wise to have many branches)
    • Divergence from the main branch

    If we go forward with this process (or another), it could be documented either directly inside the repository (PROCESSES.md?) or the GitHub wiki.

    As always, this proposal is debatable, feel free to chip in!

    Documentation Enhancement 
    opened by ajanon 0
  • Git commit format

    Git commit format

    Currently, git commits tend to follow the [subject] title style. Unfortunately, there is no strict guide for this format as the link given in the CONTRIBUTING.md file is not up to date (https://github.com/facebook/draft-js/blob/a9316a723f9e918afde44dea68b5f9f39b7d9b00/CONTRIBUTING.md links to a 404). In addition, this format is not followed closely by contributors or maintainers: see 04e5125, e4a490 and 321c58c for three different commit styles.

    This was mentioned briefly in #181 (comment https://github.com/waycrate/swhkd/issues/181#issuecomment-1357503117) where we discussed adopting Conventional Commits with automation help from the cocogitto project.

    This issue is for discussing adopting Conventional Commits or alternatives.

    We should also discuss if/how to enforce it. Should we add git hooks? GitHub actions checks? Manually, as part of the PR review process?

    Enhancement 
    opened by ajanon 3
  • `swhkd` should grab all devices

    `swhkd` should grab all devices

    This is a continuation of a discussion from #71.

    First, a small summary of how device grabbing was implemented in swhkd as I understand it:

    To avoid grabbing all devices and swallowing their events (mouse cursor movements, for instance), a keyboard detection algorithm was first implemented in 8bbd34c. It checks if a given device is a keyboard by checking for the presence of the Enter key. This was not completely correct, as some users still had their non-keyboard devices grabbed by swhkd (see #131) and this was causing other issues. For some others, some hardware keys were not recognized as keyboards (see #71).

    In answer to these issues, a --device argument was added to swhkd in b53b8c. This allows users to explicitely tell what devices to use. With some configuration from users, this thus solves the issues.

    Ideally, users should not have to worry about what device swhkd should grab - it should do it correctly out of the box.

    In #163, we added support for re-emitting most device events from the grabbed device to the virtual uinput device of swhkd.

    With this improvement, it should not be necessary anymore to avoid grabbing all devices, as swhkd can just re-emit events as needed. Additionally, the --device argument is probably unnecessary and could be deprecated.

    Enhancement Difficulty: low Component: daemon 
    opened by ajanon 3
  • Update Cargo.toml and Cargo.lock to 1.2.2 for 1.2.2 branch

    Update Cargo.toml and Cargo.lock to 1.2.2 for 1.2.2 branch

    Cargo.lock was updated using make release.

    Please note that this PR is to be merged into the 1.2.2 branch. There will be a bit of divergence compared to the current main branch, but this allows us to make a proper fix release.

    1.2.2 contains a number of fixes. Below is a tentative release text for this version based in part on keep a changelog as discussed in #181:

    1.2.2

    Added

    • swhks debug command line option to get verbose logging
    • swhks log command line option to log to a file
    • swhkd-vim installs alongside swhkd in the AUR package

    Changed

    • swhks no longer defaults to a verbose output (see debug flag)
    • swhks logs to a file by default
    • swhks now logs command output by default
    • man pages are now gzipped as part of the build process

    Fixed

    • Incorrect short version flag documentation in swhkd man page.
    • Release key events are no longer shadowed by press events (#159)
    • Sending multiple SIGHUP to swhkd to reload the config file no longer crashes (#155)

    I am not 100% sure that the changelog above is accurate, feel free to discuss it. Notably, I am not sure what 2832de8 is about. @EdenQwQ would you mind explaining it a bit for the changelog? Additionally, a2cdcee is quite large, and I am not sure if I understood all changes.

    opened by ajanon 4
Releases(1.2.1)
  • 1.2.1(Jul 23, 2022)

  • 1.2.0(May 11, 2022)

    Thanks to @uncomfyhalomacro who packaged swhkd from open suse repos, a multitude of security vulnerabilities were discovered by @mgerstner which primarily arose due to my incompetence and lack of careful review of all pull requests. I apologize for this.

    The following CVE's have been fixed in this release:

    CVE-2022-27815
    CVE-2022-27814
    CVE-2022-27819
    CVE-2022-27818
    CVE-2022-27816
    

    Only CVE-2022-27817 remains as it is a genuinely difficult problem to solve for us right now. After a short conversation with Kenny Levinsen ( author of seatd ) we came to the conclusion that it's not possible to get access of a seat without complete control of the session hence any compositor which is launched after swhkd won't work. We can however get the fd's of the devices, release the seat, and then pass it along to evdev but that will require a complete application rewrite.

    @mgerstner did suggest to try systemd context switching with elogind for supporting various inits. As far as I can tell this implementation will have a time complexity of O(2^n) so as the number of seats increase, swhkd will start to lag because there is a considerable amount of cold start to swhkd after which the application runs fine.

    I'd also like to point out that the above solution will NOT be portable. Distributions that decide to not build elogind support into their init systems will not be able to run swhkd and hence it's not a path that I'd fancy even if it were to fix the problem.

    For now CVE-2022-27817 will probably remain stale. For single user ( single seat ) systems swhkd will function just fine.

    Source code(tar.gz)
    Source code(zip)
    glibc-x86_64-1.2.0.zip(1.31 MB)
    musl_libc-x86_64-1.2.0.zip(1.42 MB)
  • 1.1.7(Mar 13, 2022)

    New features

    Include multiple config files by using the include statement.

    # /etc/swhkd/swhkdrc
    include /home/user/.config/swhkd/swhkdrc
    

    @ and ~ prefixes.

    Add @ before a keysym so that the command will run when the key is released. Add ~ before a keysym so that the keysym would be sent to other clients.

    What's Changed

    • Update release.sh by @uncomfyhalomacro in https://github.com/waycrate/swhkd/pull/84
    • refactor: improve daemon / server code by @angelofallars in https://github.com/waycrate/swhkd/pull/85
    • feat: improve logs in daemon/server by @angelofallars in https://github.com/waycrate/swhkd/pull/86
    • Feat: multiple config file loading & '@' '~' prefix by @EdenQwQ in https://github.com/waycrate/swhkd/pull/87

    New Contributors

    • @uncomfyhalomacro made their first contribution in https://github.com/waycrate/swhkd/pull/84

    Full Changelog: https://github.com/waycrate/swhkd/compare/1.1.5...1.1.7

    Source code(tar.gz)
    Source code(zip)
    glibc-x86_64-1.1.7.zip(3.34 MB)
    musl_libc-x86_64-1.1.7.zip(3.34 MB)
  • 1.1.4(Mar 6, 2022)

Owner
Aakash Sen Sharma
@evilbryan590 is a furry
Aakash Sen Sharma
Minitel 5 somewhat reverse-engineered

Minitel 5 The Minitel was a french dumb terminal with an embedded modem which had its Golden Age before the rise of Internet. Typically cubic, with an

cLx 10 Dec 28, 2022
A python script providing an idea of how a MindSphere application, e.g., a dashboard, can be displayed around the clock without the need of manual re-authentication on enforced session expiration

A python script providing an idea of how a MindSphere application, e.g., a dashboard, can be displayed around the clock without the need of manual re-authentication on enforced session expiration

MindSphere 3 Jun 03, 2022
poetry2nix turns Poetry projects into Nix derivations without the need to actually write Nix expressions

poetry2nix poetry2nix turns Poetry projects into Nix derivations without the need to actually write Nix expressions. It does so by parsing pyproject.t

Nix community projects 405 Dec 29, 2022
EloGGs 🎮 is a 1v1.LOL Trophy Boosting Program (PATCHED)

EloGGs 🎮 is an old patched 1v1.LOL boosting program I developed months ago, My team made around $1000 total off of this, but now it's been patched by the developers.

doop 1 Jul 22, 2022
Probably the best way to simulate block scopes in Python

This is a package, as it says on the tin, to emulate block scoping in Python, the lack of which being a clever design choice yet sometimes a trouble.

88 Oct 26, 2022
Example code for the book Fluent Python, 1st Edition (O'Reilly, 2015)

Fluent Python, First Edition: example code This repository is archived and will not be updated.

Fluent Python 5.4k Jan 09, 2023
Exactly what it sounds like, which is something rad

EyeWitnessTheFitness External recon got ya down? That scan prevention system preventing you from enumerating web pages? Well look no further, I have t

Ellis Springe 18 Dec 31, 2022
A one place destination to check whatever is trending on the top social and news websites at present.

UpTrend A one place destination to check whatever is trending on the top social and news websites at present. Explore the docs » View Demo · Report Bu

Google Developer Student Clubs - JGEC 10 Oct 03, 2021
Cross-Encoder-with-Bi-Encoder를 활용한 WebPage 데모

Retrieval_Streamlit_Demo Cross-Encoder-with-Bi-Encoder를 활용한

5 Dec 29, 2021
A Tool to validate domestic New Zealand vaccine passes

Vaccine Validator Tool to validate domestic New Zealand vaccine passes Create a new virtual environment: python3 -m venv ./venv Activate virtual envi

8 May 01, 2022
Easytile blender - Simple Blender 2.83 addon for tiling meshes easily

easytile_blender Dead simple, barebones Blender (2.83) addon for placing meshes as tiles. Installation In Blender, go to Edit Preferences Add-ons

Sam Gibson 6 Jul 19, 2022
Ikaros is a free financial library built in pure python that can be used to get information for single stocks, generate signals and build prortfolios

Ikaros is a free financial library built in pure python that can be used to get information for single stocks, generate signals and build prortfolios

Salma Saidane 64 Sep 28, 2022
A tool to assist in code raiding in rust

Kodelock a tool to assist in code raiding in rust This tool is designed to be used on a second monitor. This tools will allow you to see a easily read

3 Oct 27, 2022
Pydesy package description (EN)

Pydesy package description (EN) Last version: 0.0.2 Geodetic library, which includes the following tasks: 1. Calculation of theodolite traverse (tachy

1 Feb 03, 2022
PIP Manager written in python Tkinter

PIP Manager About PIP Manager is designed to make Python Package handling easier by just a click of a button!! Available Features Installing packages

Will Payne 9 Dec 09, 2022
A Puzzle A Day Keep the Work Away

A Puzzle A Day Keep the Work Away No moyu again!

P4SSER8Y 5 Feb 12, 2022
An ongoing curated list of frameworks, libraries, learning tutorials, software and resources in Python Language.

Python Development Welcome to the world of Python. An ongoing curated list of frameworks, libraries, learning tutorials, software and resources in Pyt

Paul Veillard 2 Dec 24, 2021
hey, this repo is the backend of the sociio project

sociio backend Hey, this repository is a part of sociio project , In this repo we are working to create an independent server for everything you can i

2 Jun 09, 2022
A tool to improve Boolean satisfiability (SAT) solver user's life

SatHelper This is a tool to improve the Boolean satisfiability (SAT) and MaxSAT solver user's life. It helps you model various problems as SAT and Max

Tomas Balyo 1 Nov 16, 2021
You'll learn about Iterators, Generators, Closure, Decorators, Property, and RegEx in detail with examples.

07_Python_Advanced_Topics Introduction 👋 In this tutorial, you will learn about: Python Iterators: They are objects that can be iterated upon. In thi

Milaan Parmar / Милан пармар / _米兰 帕尔马 252 Dec 23, 2022